【问题标题】:PyQt Call Function Does Not WorkPyQt 调用函数不起作用
【发布时间】:2018-02-26 21:28:40
【问题描述】:

所以我正在使用 QT 在 Python 中创建 GUI。

我创建了 *.ui 代码并将其转换为 *.py 下一步是在python中创建一行代码来调用newley转换后的*.py代码。

这是转换后的 .ui 代码现在在 .py 中:

    from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(383, 54)
        self.label = QtWidgets.QLabel(Dialog)
        self.label.setGeometry(QtCore.QRect(40, 10, 61, 16))
        self.label.setObjectName("label")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(270, 10, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.lineEdit = QtWidgets.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(110, 10, 113, 20))
        self.lineEdit.setObjectName("lineEdit")

        self.retranslateUi(Dialog)
        self.pushButton.clicked.connect(self.lineEdit.clear)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.label.setText(_translate("Dialog", "Enter Text"))
        self.pushButton.setText(_translate("Dialog", "Clear"))

现在我正在创建一个调用函数,这是似乎不起作用的部分。我已经编写了代码,根本看不到任何错误。如果有人可以提供帮助,将不胜感激:

    import sys
from FirstApp import *

class MyForm(QtGui.QDialog):
    def _init_(self,parent=none):
        QtGui.QWidget._init_(self,parent)
        self.ui = Ui_Dialog()
        self.ui.setupUi(self)

if _name_ == "_main_":
    app = QtGui.QApplication(sys.argv)
    myapp = MyForm()
    myapp.show()
    sys.exit(app.exec_())

附言 这都是为了我的在线学位,不幸的是我们没有导师,当我们遇到困难时必须寻求在线帮助。这就是我以这种方式创建此 GUI 的原因。

【问题讨论】:

    标签: python qt user-interface pyqt


    【解决方案1】:

    第二部分有很多bug,试试这个:

    from PyQt5 import QtWidgets
    from FirstApp import *
    import sys
    
    class MyForm(QtWidgets.QDialog):
        def __init__(self, parent=None):
            QtWidgets.QDialog.__init__(self, parent)
            self.ui = Ui_Dialog()
            self.ui.setupUi(self)
    
    
    if __name__ == "__main__":
        app = QtWidgets.QApplication(sys.argv)
        myapp = MyForm()
        myapp.show()
        sys.exit(app.exec())
    

    (注意到处都是双下划线,或者None 而不是none

    【讨论】:

    • 这太棒了,谢谢!这很奇怪,因为我使用的规定书暗示了我在上面提交的代码。到目前为止,这是一个相当令人失望的出版物。因此我在这个网站上。再次感谢您!
    • QtGui.QApplication 可能适用于 Pyqt4,也许本书针对的是旧版本的 Pyqt
    【解决方案2】:

    我知道这是一个较老的问题,但我碰巧偶然发现了它并且知道一种更简单的方法。就我而言,我能够使用 pyside2 将 *.ui 文件转换为 *.py 文件。通过导航到 *.ui 文件所在的文件夹,然后在命令行上运行它

    pyside2-uic <name_of_ui_file> <name_of_*.ui_file>.py
    

    该文件夹中也会生成一个 *.py 文件。

    例如,如果我的 *.ui 文件名为“form.ui”并放置在我的桌面上。我会 CD 到我的桌面然后运行

    pyside2-uic form.ui > form.py
    

    form.py 将在我的文件夹中生成。

    【讨论】:

      猜你喜欢
      • 2015-08-19
      • 1970-01-01
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多