Qt Creator / Designer程序没有显示?

时间:2015-12-11 05:57:38

标签: python qt

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

Simple Test Program

我已成功将.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 and Program

我做错了吗?为什么我的程序不应该以它应该的方式出现?任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

这些行错了:

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

相反,你需要像:

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

注意双下划线,不同的超级参数,并将parent传递给超类。我现在无法对此进行测试,但它应该更接近于工作。

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