我在两个qt中使用类创建了一个文件。当我运行这两个文件分开时,它工作得很好。(主菜单)和(查找器),但当我调用文件时,我得到错误。我试图调用另一个文件,如打印hello,它做——导入——子例程。接下来,我尝试异常,当它仍然有这两个文件在一起自动失败,没有消息。我知道两者都有相同的类由于QT设计师,但我不知道该怎么做。他们都讨厌对方。
文件合并
> class Ui_MainWindow(object):
> MainWindow.setStatusBar(self.statusbar)
> self.retranslateUi(MainWindow)
> QtCore.QMetaObject.connectSlotsByName(MainWindow)
> def retranslateUi(self, MainWindow):
> _translate = QtCore.QCoreApplication.translate
> MainWindow.setWindowTitle(_translate("MainWindow", "Assetto corsa car mod installer"))
> self.dirlabel.setText(_translate("MainWindow", "Directory"))
> self.pathfinder.setText(_translate("MainWindow", "Path Finder"))
> self.pflabel.setText(_translate("MainWindow", "Dont know where directory path is? Use our path finder"))
> self.paste.setText(_translate("MainWindow", "Paste"))
> self.next.setText(_translate("MainWindow", "Next"))
> self.cancel.setText(_translate("MainWindow", "Cancel"))
>
> def starter():
> import sys
> app = QtWidgets.QApplication(sys.argv)
> MainWindow = QtWidgets.QMainWindow()
> ui = Ui_MainWindow()
> ui.setupUi(MainWindow)
> MainWindow.show()
> sys.exit(app.exec_())
文件主菜单从PyQt5导入QtCore, QtGui, QtWidgets从PyQt5。QtGui导入QPixmap
class Ui_MainMenu(object):
def nextpg(self):
MainMenu.close()
import MERGED
MERGED.starter()
def setupUimain(self, MainMenu):
MainMenu.setObjectName("MainMenu")
MainMenu.resize(800, 600)
MainMenu.setWindowIcon(QtGui.QIcon("logo.png"))
self.centralwidget = QtWidgets.QWidget(MainMenu)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 1, 2, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem1, 4, 1, 1, 1)
self.msg = QtWidgets.QLabel(self.centralwidget)
self.msg.setObjectName("msg")
self.msg.setAlignment(QtCore.Qt.AlignCenter)
self.gridLayout.addWidget(self.msg, 2, 1, 1, 1)
self.Title = QtWidgets.QLabel(self.centralwidget)
self.Title.setAlignment(QtCore.Qt.AlignCenter)
self.Title.setObjectName("Title")
self.gridLayout.addWidget(self.Title, 0, 1, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem2, 1, 0, 1, 1)
self.Start = QtWidgets.QPushButton(self.centralwidget)
self.Start.setObjectName("Start")
self.Start.clicked.connect(lambda: self.nextpg())
self.gridLayout.addWidget(self.Start, 3, 1, 1, 1)
self.img = QtWidgets.QLabel(self.centralwidget)
self.img.setObjectName("img")
self.img.setPixmap(QPixmap("logo.png"))
self.gridLayout.addWidget(self.img, 1, 1, 1, 1)
MainMenu.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainMenu)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
MainMenu.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainMenu)
self.statusbar.setObjectName("statusbar")
MainMenu.setStatusBar(self.statusbar)
self.retranslateUimain(MainMenu)
QtCore.QMetaObject.connectSlotsByName(MainMenu)
def retranslateUimain(self, MainMenu):
_translate = QtCore.QCoreApplication.translate
MainMenu.setWindowTitle(_translate("MainMenu", "Assetto corsa car mod installer"))
self.msg.setText(_translate("MainMenu", "Welcome to my program"))
self.Title.setText(_translate("MainMenu", "H.W.K"))
self.Start.setText(_translate("MainMenu", "Start"))
self.img.setText(_translate("MainMenu", ""))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainMenu = QtWidgets.QMainWindow()
ui = Ui_MainMenu()
ui.setupUimain(MainMenu)
MainMenu.show()
sys.exit(app.exec_())
如果有人找到一个修复,这将是非常有帮助的,因为没有类似的在线。
try this
# first class
class Ui_MainWindow(object):
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Assetto corsa car mod installer"))
self.dirlabel.setText(_translate("MainWindow", "Directory"))
self.pathfinder.setText(_translate("MainWindow", "Path Finder"))
self.pflabel.setText(_translate("MainWindow", "Dont know where directory path is? Use our path finder"))
self.paste.setText(_translate("MainWindow", "Paste"))
self.next.setText(_translate("MainWindow", "Next"))
self.cancel.setText(_translate("MainWindow", "Cancel"))
# second class
import Ui_MainWindow as uw
class Ui_MainMenu(object):
def nextpg(self):
uw.show()
def setupUimain(self, MainMenu):
MainMenu.setObjectName("MainMenu")
MainMenu.resize(800, 600)
MainMenu.setWindowIcon(QtGui.QIcon("logo.png"))
self.centralwidget = QtWidgets.QWidget(MainMenu)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem, 1, 2, 1, 1)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem1, 4, 1, 1, 1)
self.msg = QtWidgets.QLabel(self.centralwidget)
self.msg.setObjectName("msg")
self.msg.setAlignment(QtCore.Qt.AlignCenter)
self.gridLayout.addWidget(self.msg, 2, 1, 1, 1)
self.Title = QtWidgets.QLabel(self.centralwidget)
self.Title.setAlignment(QtCore.Qt.AlignCenter)
self.Title.setObjectName("Title")
self.gridLayout.addWidget(self.Title, 0, 1, 1, 1)
spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.gridLayout.addItem(spacerItem2, 1, 0, 1, 1)
self.Start = QtWidgets.QPushButton(self.centralwidget)
self.Start.setObjectName("Start")
self.Start.clicked.connect(lambda: self.nextpg())
self.gridLayout.addWidget(self.Start, 3, 1, 1, 1)
self.img = QtWidgets.QLabel(self.centralwidget)
self.img.setObjectName("img")
self.img.setPixmap(QPixmap("logo.png"))
self.gridLayout.addWidget(self.img, 1, 1, 1, 1)
MainMenu.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainMenu)
self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
self.menubar.setObjectName("menubar")
MainMenu.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainMenu)
self.statusbar.setObjectName("statusbar")
MainMenu.setStatusBar(self.statusbar)
self.retranslateUimain(MainMenu)
QtCore.QMetaObject.connectSlotsByName(MainMenu)
def retranslateUimain(self, MainMenu):
_translate = QtCore.QCoreApplication.translate
MainMenu.setWindowTitle(_translate("MainMenu", "Assetto corsa car mod installer"))
self.msg.setText(_translate("MainMenu", "Welcome to my program"))
self.Title.setText(_translate("MainMenu", "H.W.K"))
self.Start.setText(_translate("MainMenu", "Start"))
self.img.setText(_translate("MainMenu", ""))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainMenu = QtWidgets.QMainWindow()
ui = Ui_MainMenu()
ui.setupUimain(MainMenu)
MainMenu.show()
sys.exit(app.exec_())