PyQt4的麻烦创建一个简单的GUI应用程序(PyQt4 trouble creating a si

2019-07-29 01:16发布

所以我用Python创建和PyQt4的一个简单的Windows应用程序。 我设计我的UI我想在QtCreator的方式,我创建从文件的.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)

Answer 1:

你需要继承QMainWindow ,而不是QWidgetsetCentralWidget是的方法QMainWindow

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)


文章来源: PyQt4 trouble creating a simple GUI application
标签: python qt pyqt4