【问题标题】:Qt Creator/Designer Program Doesn't Show?Qt Creator/Designer 程序不显示?
【发布时间】:2015-12-11 05:57:37
【问题描述】:

我在 Qt Designer 中创建了一个简单的测试程序,它允许您选择一个文件夹并在窗口上显示其内容。它看起来像这样:

我已经成功地将.ui 文件转换为.py,没有失败。接下来,这是我运行程序的代码,恰当地命名为main.py

from PyQt4 import QtGui
import sys
import design
import os

class ExampleApp(QtGui.QMainWindow, design.Ui_MainWindow):
def _init_(self):
    super(self._class_, self)._init_()
    self.setupUI(self)
    self.btnBrowse.clicked.connect(self.browse_folder)

def browse_folder(self):
    self.listWidget.clear()
    directory = QtGui.QFileDialog.getExistingDirectory(self,"Pick a Folder")

    if directory:
        for file_name in os.listdir(directory):
            self.listWidget.addItem(file_name)

def main():
    app = QtGui.QApplication(sys.argv)
    form = ExampleApp()
    form.show()
    app.exec_()

if __name__ == '__main__':
    main()

在我的命令提示符下,我运行以下代码:

python main.py

它继续加载一两秒钟,然后我得到这个:

我做错了什么吗?为什么我的程序没有按应有的方式显示?任何帮助表示赞赏!

【问题讨论】:

标签: python qt


【解决方案1】:

这些行是错误的:

def _init_(self):
    super(self._class_, self)._init_()

相反,您想要的是:

def __init__(self, parent=None):
    super(ExampleApp, self).__init__(parent)

注意双下划线、不同的 super 参数以及将 parent 传递给 super 类。我现在无法测试这个,但它应该更接近工作。

通过错误地命名您的 __init__ 方法,它永远不会被调用。这就解释了为什么你得到一个窗口,但没有你设计的那个。

【讨论】:

  • 所以,我这样做了,我得到了以下错误:Traceback (most recent call last): File "main.py", line 27, in <module> main() File "main.py", line 22, in main form = ExampleApp() File "main.py", line 8, in __init__(parent) super(ExampleApp, self).__init__(parent) NameError: name 'parent' is not defined
  • 抱歉代码错位。我试着把它隔开,但它没有按照我想要的方式做。
  • 您是否包含了parent=None 参数?
  • 是的,然后我收到此错误:Traceback (most recent call last): File "main.py", line 27, in <module> main() File "main.py", line 22, in main form = ExampleApp() File "main.py", line 9, in __init__(parent) self.setupUI(self) AttributeError: 'ExampleApp' object has no attribute 'setupUI'
  • 成功了!非常感谢您的所有帮助,@101。
猜你喜欢
  • 2014-10-22
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
  • 2018-06-03
  • 2020-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多