Πρέπει να δημιουργήσεις το mainWindow και ένα widget που θα βάλεις μέσα στο MainWindow.
Δες αυτό:
class MainWindow(QtGui.QMainWindow):
"""
Creates the main window of the class.
Contains the menubar, toolbar, statusbar and the main_widget
"""
def __init__(self):
QtGui.QMainWindow.__init__(self) # Inherit from the super-Class
self.resize(350, 250) # Set window size
self.setWindowTitle('Grid Layout Example') # Set Title
main_widget = MainWidget() # Create central widget
self.setCentralWidget(main_widget) # Set central widget
class MainWidget(QtGui.QWidget):
"""
An example class
"""
def __init__(self):
"""
Initialization of the class.
"""
QtGui.QWidget.__init__(self) # Inherit from the super-Class
self.set_grid_layout() # call the example method
def set_grid_layout(self):
"""
An example method.
"""
names = ['afa','aouita','biv','gavgav']
grid = QtGui.QGridLayout() # Create the GridLayout
row = 0 # The row iterator
col = 0 # The column iterator
for name in names:
label = QtGui.QLabel(name) # create a Qlabel widget
grid.addWidget(label, row, col) # add the Qlabel widget at the Layout
col = col + 1 # Increment the column iterator
self.setLayout(grid) # Apply the gridLayout at the QtGui
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
EDIT
Σπάζοντας τον κώδικα σου έτσι, δηλαδή κάθε ξεχωριστό αντικείμενο σε μία διαφορετική κλάση, μπορείς πολύ εύκολα να χρησιμοποιείς τον κώδικα σου ξανά και ξανά κάνοντας μικρές κάθε φορά διορθώσεις. Δηλαδή μία κλάση το menu, μία κλάση το statusbar, μία κλάση το κεντρικό widget (που συνήθως είναι ένα μεγάλο container) κτλ.