pyqt5入门教程(七)

作者: 肥宅_Sean | 来源:发表于2018-02-17 16:10 被阅读153次

    设置居中函数,设置好这个居中函数,在初始化整个控件的时候,调用这个函数,就可以使得整体的框架的位置在一开始就被设置好

        def center(self):
            qr = self.frameGeometry()
            cp = QDesktopWidget().availableGeometry().center()
            qr.moveCenter(cp)
            self.move(qr.topLeft())
    

    对于这个函数进行分析,qr是整个框架的类(通过使用方法可以看出是用的是返回整个类的对应元素的引用)

    • cp是一个关键的QPoint,其实就是整个可用屏幕的正中心这个点的Point(坐标)。
    • 可以通过将函数改成下面的函数,来进行判断
    def center(self):
            qr = self.frameGeometry()
            cp = QDesktopWidget().availableGeometry().center()
            self.move(cp)
    

    可以发现那个框架的左上角在整个屏幕的中心点, 由于我们之前关于move函数的理解,可以推出上面结论

    总之,根据前面的代码得到的新的代码为下面代码

    import sys
    from PyQt5.QtWidgets import QApplication, QWidget, QToolTip, QPushButton, QMessageBox, QDesktopWidget
    from PyQt5.QtGui import QIcon, QFont
    from PyQt5.QtCore import QCoreApplication
    
    
    class Example(QWidget):
        def __init__(self):
            super().__init__()
            self.setUI()
    
        def setUI(self):
            QToolTip.setFont(QFont('SansSerif', 10))
            self.resize(500, 150)
            self.move(100, 100)
            self.setWindowIcon(QIcon('./Title.ico'))
            self.setWindowTitle("Hello world")
    
            self.setToolTip("<b>this is widget</b>")
    
            btn = QPushButton("quit Button", self)  # self类似于C++ this指针
            btn.setToolTip("This is a button will quit itself")
            btn.clicked.connect(QCoreApplication.instance().quit)
            btn.resize(btn.sizeHint())
            btn.move(0, 0)
    
            self.center()
            self.show()
    
        def closeEvent(self, event):
    
            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()
    
        def center(self):
            qr = self.frameGeometry()
            cp = QDesktopWidget().availableGeometry().center()
            qr.moveCenter(cp)
            self.move(qr.topLeft())
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
    
        ex = Example()
    
        sys.exit(app.exec_())
    
    

    相关文章

      网友评论

        本文标题:pyqt5入门教程(七)

        本文链接:https://www.haomeiwen.com/subject/gbnmtftx.html