PyQt5笔记 - 简单例子

时间:2021-04-01 23:01:40

一个PyQt窗口简单例子

import sys
from PyQt5.QtWidgets import  QApplication, QWidget #1

if __name__ == '__main__':
    app = QApplication(sys.argv) #2
    w = QWidget()                #3
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()
    sys.exit(app.exec_())
  1. 引入必要的库,PyQt5用到的基础库包含在PyQt5.QtWidgets中
  2. 每个PyQt5应用程序必须创建一个application对象,sys.argv参数包含了命令行传递进来的一些列参数。
  3. QWidget控件是PyQt5中所有用户界面对象类的基类
  4. 进入程序的主循环,由于exec是Python的一个关键字,所以在需要使用exec的地方添加了一个下划线,即exec_

一个面向对象的例子

*加入icon*

import sys
from PyQt5.QtWidgets import  QApplication, QWidget
from PyQt5.QtGui import QIcon

class Example(QWidget):

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

    def initUI(self):
        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle('Icon')
        self.setWindowIcon(QIcon('laptop.png'))
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

给控件添加一个提示信息

import sys
from PyQt5.QtWidgets import  (QApplication, QWidget, QToolTip,
    QPushButton)
from PyQt5.QtGui import QFont

class Example(QWidget):

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

    def initUI(self):
        QToolTip.setFont(QFont('SansSerif', 10)) #1
        self.setToolTip('This a <b>QWidget</b> widget')
        btn = QPushButton('Button', self)
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        btn.resize(btn.sizeHint())
        btn.move(50, 50)

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

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  1. 设置了用户渲染提示所用的字体

关闭窗口

import sys
from PyQt5.QtWidgets import  (QApplication, QWidget, QToolTip,
    QPushButton)
from PyQt5.QtCore import QCoreApplication

class Example(QWidget):

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

    def initUI(self):
        qbtn = QPushButton('退出', self)
        qbtn.clicked.connect(QCoreApplication.instance().quit) #1
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)

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

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  1. 信号与槽机制