Qt Creator/Designer程序不显示?

2024-04-24 12:36:27 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我做错什么了吗?为什么我的程序没有按应有的方式出现?感谢您的帮助!你知道吗


Tags: 代码namepyimportself程序osmain
1条回答
网友
1楼 · 发布于 2024-04-24 12:36:27

这些线是错误的:

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

相反,你想要的是:

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

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

如果不正确地命名__init__方法,就永远不会调用它。这就解释了为什么你得到的是一扇窗户,而不是你设计的那扇。你知道吗

相关问题 更多 >