2012-04-18 4 views
11

बनाने में परेशानी है इसलिए मैं पाइथन और पीईक्यूटी 4 के साथ एक साधारण विंडोज एप्लिकेशन बना रहा हूं। मैंने अपने UI को जिस तरह से मैं QtCreator में चाहता हूं उसे डिज़ाइन किया है और मैंने .ui फ़ाइल से आवश्यक .py फ़ाइल बनाई है। जब मैं वास्तव में खिड़की की आवृत्ति को खोलने का प्रयास हालांकि मैं निम्न त्रुटि दिया:PyQt4 समस्या एक साधारण जीयूआई अनुप्रयोग

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

तो मैं ui_mainwindow.py फ़ाइल में वापस जाने और निम्न पंक्ति बाहर टिप्पणी:

MainWindow.setCentralWidget(self.centralWidget) 

अब जब मैं main.py चलाता हूं तो यह विंडो का एक उदाहरण उत्पन्न करेगा लेकिन यह इसके ग्रिड लेआउट को खो देता है और यूआई तत्वों को बस वहां तैरने की तरह। कोई विचार क्या मैं गलत कर रहा हूँ?

मेरे 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) 

उत्तर

20

आप 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)