繁体   English   中英

PyQt4在创建简单的GUI应用程序时遇到麻烦

[英]PyQt4 trouble creating a simple GUI application

所以我正在用Python和PyQt4创建一个简单的Windows应用程序。 我已经按照我希望在QtCreator中使用UI的方式进行设计,并且已经从.ui文件中创建了必要的.py文件。 但是,当我尝试实际打开窗口实例时,出现以下错误:

AttributeError: 'Window' object has no attribute 'setCentralWidget'

因此,我回到ui_mainwindow.py文件并注释掉以下行:

MainWindow.setCentralWidget(self.centralWidget)

现在,当我运行main.py时,它将生成窗口的实例,但是会丢失其网格布局,UI元素只是在其中浮动。 知道我在做什么错吗?

我的main.py文件:

import sys
from PyQt4.QtGui import QApplication
from window import Window

if __name__ == "__main__":

    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

和我的window.py文件:

from PyQt4.QtCore import Qt, SIGNAL
from PyQt4.QtGui import *

from ui_mainwindow import Ui_MainWindow

class Window(QWidget, Ui_MainWindow):

    def __init__(self, parent = None):

        QWidget.__init__(self, parent)
        self.setupUi(self)

您需要从QMainWindow继承,而不是QWidget setCentralWidgetQMainWindow的方法。

from PyQt4.QtCore import Qt, SIGNAL
from PyQt4.QtGui import *

from ui_mainwindow import Ui_MainWindow

class Window(QMainWindow, Ui_MainWindow):
    def __init__(self, parent = None):

        QMainWindow.__init__(self, parent)
        # or better
        # super(Window, self).__init__(parent)

        self.setupUi(self)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM