No.1 PyQt学习

Posted Not-Bad

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了No.1 PyQt学习相关的知识,希望对你有一定的参考价值。

由于项目的原因,要学PyQt了。以下是第一天的学习成果

# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore


class Example(QtGui.QWidget):

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

    def initUI(self):
        QtGui.QToolTip.setFont(QtGui.QFont(\'SansSerif\', 10))  # 设置一个用来提示消息的字体,10px字体SansSerif

        btn = QtGui.QPushButton(\'Sure\', self)
        btn.setToolTip(\'This is a <b>QPushButton</b> widget\')
        btn.setGeometry(50, 110, 60, 25)
        qbtn = QtGui.QPushButton(\'Quit\', self)
        qbtn.setGeometry(170, 110, 60, 25)
        #self.connect(qbtn, QtCore.SIGNAL(\'clicked()\'), QtGui.qApp, QtCore.SLOT(\'quit()\'))
        #qbtn.clicked.connect(QtCore.QCoreApplication.instance().quit)
        qbtn.clicked.connect(self.qbtnClick)
        self.resize( 250, 150)
        self.center()
        self.setWindowTitle(\'Test\')
        self.setWindowIcon(QtGui.QIcon(\'flat.png\'))
        self.show()

    def qbtnClick(self):
        reply = QtGui.QMessageBox.question(self, \'Message\',
                                           \'Are you sure to quit?\', QtGui.QMessageBox.Yes,
                                           QtGui.QMessageBox.No)
        if reply == QtGui.QMessageBox.Yes:
            quit()

    def center(self):
        qr = self.frameGeometry()                                       #得到该主窗口的矩形框架qr
        cp = QtGui.QDesktopWidget().availableGeometry().center()        #屏幕中间点的坐标cp
        qr.moveCenter(cp)                                               #将矩形框架移至屏幕正中央
        self.move(qr.topLeft())                                         #应用窗口移至矩形框架的左上角点

    def closeEvent(self, event):

        reply = QtGui.QMessageBox.question(self, \'Message\',
                                             \'Are you sure to quit?\', QtGui.QMessageBox.Yes,
                                             QtGui.QMessageBox.No)

        if reply == QtGui.QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()


def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == \'__main__\':
    main()

运行截图:

点击 × 和 Quit 都会有消息框,如下:

以上是关于No.1 PyQt学习的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5对话框窗口打开时没有布局

PyQt中复选框的ListView

如何在 PyQt 的 QGraphicsViews 中使用自定义绘图?

未使用 PYQT5 多播 UDP 接收数据报

解决PyQt5 QMediaPlayer播放mp3后占用的问题

pyqt5学习