PyQt5笔记 - 消息框和设置窗口中心

消息框

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QMessageBox

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('ToolTips')
        self.show()

    def closeEvent(self, event):   #1
        reply = QMessageBox.question(self, 'Message',
                                     'Are you sure to quit?', QMessageBox.Yes|QMessageBox.No, QMessageBox.No)
        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  1. 重写(override)父类(QWidget)的closeEvent方法

设置窗口屏幕中心

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget

class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.resize(250, 150)
        self.center()
        self.setWindowTitle('Center')
        self.show()

    def center(self):
        qr = self.frameGeometry() #1
        cp = QDesktopWidget().availableGeometry().center() #2
        qr.moveCenter(cp)         #3
        self.move(qr.topLeft())   #4

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  1. 返回QRect,当前窗口坐标
  2. 返回桌面的中心点
  3. 当前窗口矩形移到屏幕中心点
  4. 当前窗口移到当前窗口矩形的左上角

Note: 当前窗口矩形和当前窗口不是一个概念

你可能感兴趣的:(随笔)