首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >PyQT5基本功能

PyQT5基本功能

作者头像
TomatoCool
发布2023-07-30 17:38:29
发布2023-07-30 17:38:29
31600
代码可运行
举报
文章被收录于专栏:TomatoCoolTomatoCool
运行总次数:0
代码可运行

#无特殊注明,所有案例只修改第一个案例的对应部分

创建一个基本窗口:

代码语言:javascript
代码运行次数:0
运行
复制
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *


#  继承QWidget,用户界面的基本控件,提供了基本的应用构造器
#  默认情况下,构造器是没有父级的,没有父级的构造器被称为窗口(window)
class Example(QWidget):

    #  继承父类构造
    def __init__(self):
        super().__init__()

        #  使用initUI()方法创建一个GUI
        self.initUI()

    #  初始化组件
    def initUI(self):
        #  设置窗口x,y坐标,宽,高
        #  坐标原点在屏幕左上角,x,y为窗口左上角的坐标
        self.setGeometry(300, 300, 300, 250)
        #  分别设置x,y坐标,宽,高
        """
        self.move(300, 300)
        self.resize(300, 250)
        """
        #  设置窗口标题
        self.setWindowTitle('Title')
        #  显示控件
        self.show()


if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = Example()
    #  进入应用的主循环中,调用exit()方法或直接销毁主控件时,主循环就会结束
    sys.exit(app.exec_())

更改窗口图标:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  位置,宽高
    self.setGeometry(300, 300, 300, 250)
    #  标题
    self.setWindowTitle('Icon')

    #  设置图标
    self.setWindowIcon(QIcon('cat.jpg'))

    #  显示控件
    self.show()

控件提示框:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  设置字体
    QToolTip.setFont(QFont('SansSerif', 10))

    #  鼠标悬停,显示提示框
    self.setToolTip('This is a <b>QWidget</b> widget')

    #  创建一个按钮
    btn = QPushButton('Button', self)
    #  设置大小,btn.sizeHint()为默认大小
    btn.resize(btn.sizeHint())
    #  设置坐标,以父元素左上角为原点
    btn.move(50, 50)

    #  鼠标悬停在按钮,显示提示框
    btn.setToolTip('This is a <b>QPushButton</b> widget')

    #  不注释了
    self.setGeometry(300, 300, 300, 250)
    self.setWindowTitle('Tooltips')
    self.show()

关闭窗口:

代码语言:javascript
代码运行次数:0
运行
复制
#  注意导入QCoreApplication类
from PyQt5.QtCore import QCoreApplication


#  初始化组件
def initUI(self):
    #  创建按钮
    qbtn = QPushButton('Quit', self)
    #  按钮初始化
    qbtn.resize(qbtn.sizeHint())
    qbtn.move(50, 50)
    #  设置按钮事件(关闭窗口)
    qbtn.clicked.connect(QCoreApplication.instance().quit)

    #  不注释了
    self.setGeometry(300, 300, 300, 250)
    self.setWindowTitle('Quit button')
    self.show()

消息盒子:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    #  不注释了
    self.setGeometry(300, 300, 300, 250)
    self.setWindowTitle('Message box')
    self.show()

#  重写closeEvent方法
#  如果关闭QWidget,就会产生一个QCloseEvent,并且把它传入到closeEvent函数的event参数中
#  改变控件的默认行为,就是替换掉默认的事件处理
def closeEvent(self, event):
    #  创建一个消息框
    #  参数分别代表self,标题栏,对话框,确认按钮,取消按钮,默认按钮
    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()

窗口居中:

代码语言:javascript
代码运行次数:0
运行
复制
#  初始化组件
def initUI(self):
    self.resize(300, 250)
    self.setWindowTitle('Center')
    #  调用自定义函数
    self.center()
    self.show()

#  自定义居中函数
def center(self):
    #  获得主窗口所在的框架
    qr = self.frameGeometry()
    #  获取显示器的分辨率,然后得到屏幕中间点的位置
    cp = QDesktopWidget().availableGeometry().center()
    #  然后把主窗口框架的中心点放置到屏幕的中心位置
    qr.moveCenter(cp)
    #  然后通过move函数把主窗口的左上角移动到其框架的左上角
    self.move(qr.topLeft())
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建一个基本窗口:
  • 更改窗口图标:
  • 控件提示框:
  • 关闭窗口:
  • 消息盒子:
  • 窗口居中:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档