主窗口类型:
QMainWindow: 可以包含菜单栏,工具栏,状态栏和标题栏,是最常见的窗口形式
QWidget: 不确定窗口的用途的时候, 就用这个。
QDialog: 是对话窗口的基类。是没有工具栏,状态栏,菜单栏的。
简单案例:
from PyQt5.QtWidgets import QApplication,QWidget,QMainWindow,QPushButton,QHBoxLayout,QDesktopWidget
import sys
class QuitApplication(QMainWindow):
def __init__(self):
super().__init__()
self.ui_init()
def ui_init(self):
self.setWindowTitle('let window go')
self.resize(400,400)
self.button1 = QPushButton('quit window')
self.button1.clicked.connect(self.onClicked_Button_quit)
self.button2 = QPushButton('get x,y,h,w, size')
self.button2.clicked.connect(self.onClicked_Button_getSize)
layout = QHBoxLayout()
mainFrame = QWidget()
layout.addWidget(self.button1)
layout.addWidget(self.button2)
mainFrame.setLayout(layout)
self.setCentralWidget(mainFrame)
def onClicked_Button_quit(self):
sender = self.sender()
print(sender.text() + 'button clicked')
app = QApplication.instance()
app.quit()
def onClicked_Button_getSize(self):
screen = QDesktopWidget().screenGeometry()
size = self.geometry()
print('screen.size:{}x{}'.format(screen.width(), screen.height()))
print('widget.size:{}x{}'.format(size.x(), size.y()))
print('widget.size:{}x{}'.format(size.width(), size.height()))
newLeft = (screen.width() - size.width()) /2
newTop = (screen.height() - size.height()) /2
self.move(newLeft, newTop)
self.resize(600,600)
if __name__ == '__main__':
app = QApplication(sys.argv)
main = QuitApplication()
main.show()
sys.exit(app.exec_())