下面是报的错
Traceback (most recent call last):
File "D:/python/python_work/菜单实现平差/调用.py", line 15, in <module>
win = Using_test()
File "D:/python/python_work/菜单实现平差/调用.py", line 10, in __init__
self.setupUi(self)
File "D:\python\python_work\菜单实现平差\菜单.py", line 23, in setupUi
MainWindow.setCentralWidget(self.centralwidget)
AttributeError: 'Using_test' object has no attribute 'setCentralWidget'
下面是窗体的代码
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(800, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(230, 290, 92, 28))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
self.menu = QtWidgets.QMenu(self.menubar)
self.menu.setObjectName("menu")
self.menu_2 = QtWidgets.QMenu(self.menubar)
self.menu_2.setObjectName("menu_2")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.actionxinjian = QtWidgets.QAction(MainWindow)
self.actionxinjian.setObjectName("actionxinjian")
self.actiondakai = QtWidgets.QAction(MainWindow)
self.actiondakai.setObjectName("actiondakai")
self.actionbaocun = QtWidgets.QAction(MainWindow)
self.actionbaocun.setObjectName("actionbaocun")
self.actiontiao = QtWidgets.QAction(MainWindow)
self.actiontiao.setObjectName("actiontiao")
self.actiondad = QtWidgets.QAction(MainWindow)
self.actiondad.setObjectName("actiondad")
self.menu.addAction(self.actionxinjian)
self.menu.addAction(self.actiondakai)
self.menu.addAction(self.actionbaocun)
self.menu_2.addAction(self.actiontiao)
self.menu_2.addAction(self.actiondad)
self.menubar.addAction(self.menu.menuAction())
self.menubar.addAction(self.menu_2.menuAction())
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.pushButton.setText(_translate("MainWindow", "PushButton"))
self.menu.setTitle(_translate("MainWindow", "文件"))
self.menu_2.setTitle(_translate("MainWindow", "运行"))
self.actionxinjian.setText(_translate("MainWindow", "新建"))
self.actiondakai.setText(_translate("MainWindow", "打开"))
self.actionbaocun.setText(_translate("MainWindow", "保存"))
self.actiontiao.setText(_translate("MainWindow", "条件平差"))
self.actiondad.setText(_translate("MainWindow", "间接平差"))
下面是调用代码
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QDialog,QMainWindow
from 菜单 import Ui_MainWindow
class Using_test(QDialog, Ui_MainWindow, QMainWindow):
def __init__(self, *args, **kwargs):
super(Using_test,self).__init__(*args, **kwargs)
self.setupUi(self)
if __name__ == '__main__':
app = QApplication(sys.argv)
win = Using_test()
win.show()
sys.exit(app.exec_())
还有就是这个调用代码是一个套用的模板吗,有点看不太懂。
from 菜单 import Ui_MainWindow
你的 UI 文件名就是 "菜单“ 吗?应该替换为对应 UI 文件,如 menu.py,就是你贴的 窗体代码 保存的 .py 文件名
可以贴一下 菜单.py 的代码吗?
应该是里面少了一个函数
self.setupUi(self)
这里传入的参数应该是MainWindow,而不是self