2012-04-18 10 views
11

私はPythonとPyQt4で簡単なWindowsアプリケーションを作成しています。私は自分のUIをQtCreatorでやりたいやり方でデザインしましたが、.uiファイルから必要な.pyファイルを作成しました。私は実際には、ウィンドウのインスタンスを開こうとするとしかし、私は次のエラーを与えている:PyQt4で簡単なGUIアプリケーションを作成できない

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ファイル:あなたがQMainWindow、ないQWidgetから継承する必要

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) 

答えて

20

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) 
関連する問題