Найти - Пользователи
Полная версия: PyQt4: Использование QMainWindow
Начало » GUI » PyQt4: Использование QMainWindow
1
alien308
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
import sys
class Main_Frame(QtGui.QFrame):
    def __init__(self, parent = None):
        QtGui.QFrame.__init__(self, parent)
        self.label = QtGui.QLabel("Hello")
        hbox = QtGui.QHBoxLayout()
        hbox.addWidget(self.label)
        self.setLayout(hbox)
class MyWindow(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setWindowFlags(QtCore.Qt.Window |
                            QtCore.Qt.WindowSystemMenuHint)
        self.resize(800, 600)
        self.main_frame = Main_Frame()
        self.layout().addWidget(self.main_frame)
app = QtGui.QApplication(sys.argv)
window = MyWindow()
window.show()
sys.exit(app.exec_())
При выполнении выдаёт сообщение: Please use the public QMainWindow API instead
Как я понял требует использовать QMainWindow API. Посмотрел документацию и не понял как размещать виджеты в таком окне. Подскажите как сделать.
alien308
Надо так:
class MyWindow(QtGui.QMainWindow):
    def __init__(self, parent = None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setWindowFlags(QtCore.Qt.Window |
                            QtCore.Qt.WindowSystemMenuHint)
        self.main_frame = Main_Frame()
        self.setCentralWidget(self.main_frame)
 
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB