Python图形界面--PyQt (一)

PyQt5 从第一个程序开始

学习自:
链接: link.

链接: link.

第一段代码片

代码片.
创建窗口,设置窗口大小,设置窗口名称等

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

import sys
from PyQt5 import QtWidgets, QtCore

if __name__ == "__main__":
	# 这里引入了PyQt5.QtWidgets模块,这个模块包含了基本的组件。
	# 每个PyQt5应用都必须创建一个应用对象。
	#  `sys.argv是一组命令行参数的列表。 `
	# Python可以在shell里运行,这个参数提供对脚本控制的功能。
    app = QtWidgets.QApplication(sys.argv)
	# QWidge控件是一个用户界面的基本控件,它提供了基本的应用构造器。
    widget = QtWidgets.QWidget()

    widget.resize(320, 240)
    widget.setWindowTitle("Hello PyQt5!!!")
    widget.show()
	# 这里,只有进入循环,才创建完成,否则一直显示未响应
    sys.exit(app.exec_())

第二段代码片

代码片.
设置提示框,添加button,

#!/usr/bin/env python
# -*- coding: utf-8 -*- 

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


class Example(QWidget):

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

        self.initUI()

    def initUI(self):
        # 这个静态方法设置了提示框(鼠标放上去有说明)的字体,我们使用了10px的SansSerif字体。
        QToolTip.setFont(QFont('SansSerif', 10))
        # 调用setTooltip()创建提示框可以使用富文本格式的内容。
        # 给这个window的窗口设置的提示框
        self.setToolTip('This is a <b>QWidget</b> widget')

        # 创建一个可以按的按钮
        btn = QPushButton('Button', self)
        # 给按钮加上提示框
        btn.setToolTip('This is a <b>QPushButton</b> widget')
        # 重新定义按钮大小  为 btn.sizeHint() 那么大的按钮 这个大小是默认的为PyQt5.QtCore.Qsize(75,23)
        btn.resize(btn.sizeHint())
        btn.move(50, 50)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Tooltips')
        self.show()
        # 这里有一个问题,设置提示框的字体以及大小
        # 是如何传入到窗体的提示框,以及button的提示框里面去的?
        # 猜测可能是全局变量,当调用setToolTip时,调用QToolTip里面的内容


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

第三段代码片

代码片.
设置按钮的功能,通过连接

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


class Example(QWidget):

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

        self.initUI()

    def initUI(self):
        # 创建一个button,父级组件是 QWidget
        qbtn = QPushButton('Quit', self)
        # 窗口建立连接,连接到 APP 实例的 退出功能
        # 点击按钮之后,信号会被捕捉并给出既定的反映。QCoreApplication是事件的主循环
        # 它能添加和删除所有的事件,instance()创建了一个它的实例。
        # 点击事件和能终止进程并退出应用的quit函数绑定在了一起。
        # 在发送者和接受者之间建立了通讯,发送者就是按钮,接受者就是应用对象.退出功能
        qbtn.clicked.connect(QCoreApplication.instance().quit)
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Quit button')
        self.show()


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


第四段代码片

代码片.
当关闭时,弹出消息框,确认关闭与否

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


class Example(QWidget):

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

        self.initUI()

    def initUI(self):

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Message box')
        self.show()

    def closeEvent(self, event):
        # 这里closeEvent属于子类重写,当关闭时调用
        # d当关闭QWidget时,会产生一个QCloseEvent,改变这个event默认的行为
        # 弹出yes or no
        # 设立一个消息盒子,提出问题,有两个选项 用或相连,后面是默认值
        # 如果选yes,那么就接收,如果选no,则自动忽略
        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_())


第五段代码片

代码片.

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


class Example(QWidget):

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

        self.initUI()

    def initUI(self):
        self.resize(1000, 800)
        self.center()

        self.setWindowTitle('Center')
        self.show()

    def center(self):

        # QDesktopWidget提供了用户的桌面信息,包括屏幕的大小,frame框架 Geometry几何位置
        # 得到了主窗口的大小。
        qr = self.frameGeometry()
        # 这个就是调取桌面的几何位置的中心位置
        # 获取显示器的分辨率,然后得到中间点的位置。
        cp = QDesktopWidget().availableGeometry().center()
        # 将窗口移动到桌面的中心
        # 然后把自己窗口的中心点放置到qr的中心点。
        qr.moveCenter(cp)
        # 将窗口移动到电脑屏幕的左上角
        # 这里如果不移动到左上角会发生什么呢?
        # 之前不是已经将中心点与中心点对其了吗?
        self.move(qr.topLeft())


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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值