Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 20, 2014 15:40:08

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Использование QMainWindow

#!/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 (Дек. 20, 2014 15:41:01)

Офлайн

#2 Дек. 20, 2014 16:33:40

alien308
Зарегистрирован: 2012-06-23
Сообщения: 62
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: Использование QMainWindow

Надо так:

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)
 

Отредактировано alien308 (Дек. 20, 2014 16:34:08)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version