python - 使用 pyqt5 在 python 上遇到一些错误
问题描述
我在两个 qt 中都使用类创建了一个文件。当我分别运行这两个文件时,它工作得很好。(主菜单)和(查找器),但是当我调用文件时出现错误。我试图调用另一个文件,即打印它所做的打招呼——导入——.subroutine。接下来我尝试了异常,当它将这两个文件放在一起时,它仍然自动失败,没有消息。由于 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_())
FILE MAIN MENU from PyQt5 import QtCore, QtGui, QtWidgets from PyQt5.QtGui import 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_())
如果有人找到修复程序,这将非常有帮助,因为网上没有类似的东西。
解决方案
尝试这个
# 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_())
推荐阅读
- vb.net - 使用按钮单击以另一个表单调用表单
- python - 在每个组的范围内插入天数
- c# - VSIX 风格的项目,以 .NET Standard 为目标并使用新的 csproj 格式
- linkedin - Linkedin JavaScript SDK 并不总是返回用户的电子邮件地址
- angular - Angular ngrx:具有副作用的防护
- html - 指向 PayPal Gving Fund 的 HTML 按钮不起作用
- vue.js - 为什么 babelConfig 在 webpack encore 中不起作用?
- python-3.x - 熊猫删除重复但保持关系
- ios - 导航到另一个视图后阻止显示 UIAlertViewController
- javascript - Angular 2如何将对象数组放入另一个对象数组