pyQt的基本使用

1. 基本窗口

import sys
from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':
    appProcess = QApplication(sys.argv)

    window = QWidget()
    window.setWindowTitle('hello')
    window.show()
    #显示窗口

    sys.exit(app.exec_())
  • QApplication(), 该类的对象每个窗口都需要有一个,用于处理事件
  • QWidget(), 是最基本的窗口类

2. 用类的实例来创建窗口

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

class WindowTest(QWidget):

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

    def initUI(self):
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Tooltips')
        self.show()

if __name__ == '__main__':

    app = QApplication(sys.argv)
    ex = WindowTest()
    sys.exit(app.exec_())
  • 定义了一个叫 WindowTest的类,其中有两个函数:初始化函数 __init__(self)和定义的 initUI
  • __init(self)_: 通过 super().__init__()调用父类的初始换函数,其中 super()指代父类
  • 在创建定义的 WindowTest类的对象时,会自动运行初始化方法,也就是我们在 WindowTest类中定义的 __init(self)_方法。

3. 按钮、按钮提示与字体调整

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):
        #创建按钮变量
        btn = QPushButton('Button', self)
        #定义所有按钮的提示内容
        self.setToolTip('This is a QWidget widget')
        #定义按钮提示的字体
        QToolTip.setFont(QFont('SansSerif', 10))
        #将按钮设为默认大小
        btn.resize(btn.sizeHint())
        self.setWindowTitle('Tooltips')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
  • QPushButton('NameOfButton', window_whereButBelongs): 定义按钮,第一个参数为按钮显示的字符;第二个参数为按钮附着的页面,在本例中为创建的 QWidget窗口
  • self.setToolTip('content'): 定义了该窗口所有按钮提示的文字, content为其中的内容
  • QToolTip.setFont(QFont('SansSerif', 10)): 定义了按钮提示的字体与大小

4. 消息窗口——退出确认提示

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):
        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_())
  • event: 在 closeEvent中用到的 event,属于 QCloseEvent。在关闭窗口 Qwidget时,该操作会被 event接收,并改变关闭窗口默认操作——执行定义的函数
  • QMessageBox.question(self, 'Title',"content", QMessageBox.Yes | QMessageBox.No, QMessageBox.No): 该函数有五个个参数, self, title, content, QMessageBox.Yes | QMessageBox.No, QMessageBox.No
  • title: 退出提示框的标题
  • content: 推出提示框显示的内容
  • QMessageBox.Yes | QMessageBox.No: 推出提示框显示的两个按钮,中间用 |分隔开来。其中两个按钮的内容是QT中定义好的yes和no
  • QMessageBox.No: 第四个参数是默认选项,这里默认选了no

Original: https://www.cnblogs.com/dysonxxxxx/p/16582057.html
Author: dysonkkk
Title: pyQt的基本使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578850/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • redis数据结构附录

    引言 本次对上一次的数据结构知识进行补充,主要有redis数据结构的相关应用场景和内存相关知识 引用计数-内存 redis中的对象回收机制是采用引用计数的方式,首先我们可以通过re…

    Linux 2023年6月13日
    091
  • Filter、Interceptor、Aspect 区别及实现

    Fliter 过滤器 请求在到达Controller之前进行与返回去之后 调用 入参为 reuqest,response,chian,过滤器获取不了具体调用哪一个类,哪一个方法。 …

    Linux 2023年6月7日
    092
  • PicGo图床设置

    PicGo图床设置 介绍 PicGo是一款开源的图床管理工具,是可以快速的上传图片并且获得图片的URL链接的工具。目前支持Windows和macOS平台,可以方便的进行拖拽、复制粘…

    Linux 2023年6月6日
    0103
  • docker compose容器编排

    Docker Compose (可简称Compose)是一个定义与运行复杂应用程序的 Docker 工具,是 Docker 官方 编排&…

    Linux 2023年6月8日
    096
  • sql注入

    一.原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有…

    Linux 2023年6月6日
    081
  • PyTorch介绍-构建神经网络

    神经网络由对数据进行操作的layers/modules组成。torch.nn 命名空间提供了所有你需要的构建块,用于构建你自己的神经网络。PyTorch的每一个module都继承自…

    Linux 2023年6月14日
    090
  • cv2简单使用(opencv-python)

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月14日
    063
  • Django中自定义管理器Manager用法

    Django中Manager用法 第一种 class create_user(models.Manager): def create(self, name, sex, age): …

    Linux 2023年6月14日
    078
  • windows系统python3.6(Anaconda3)安装对应版本 torch、torchvision

    一、官网下载 .whl 文件 https://download.pytorch.org/whl/torch_stable.html 二、使用pip命令安装 打开你的anaconda…

    Linux 2023年6月14日
    066
  • 【原创】Linux PCI驱动框架分析(二)

    背 景 Read the fucking source code! –By 鲁迅 A picture is worth a thousand words. &#8211…

    Linux 2023年6月8日
    094
  • 正则: 匹配英文、数字和所有特殊字符

    r”’\[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;’\\[\]·~!@#¥%……&*()——\-+={}|《》?…

    Linux 2023年6月15日
    0119
  • Python Django构建简易CMDB

    前言 本文仅是对以前写的小示例进行一次梳理和代码优化,由于本人菜鸟一枚,前端,系统运维知识只知皮毛,后端python也没有实际开发经验,在开发过程中也没有考虑堡垒机等一系列服务器的…

    Linux 2023年6月7日
    0120
  • JuiceFS V1.0 RC1 发布,大幅优化 dump/load 命令性能, 深度用户不容错过

    各位社区的伙伴, JuiceFS v1.0 RC1 今天正式发布了! 这个版本中,最值得关注的是对元数据迁移备份工具 dump/load 的优化。 这个优化需求来自于某个社区重度用…

    Linux 2023年6月14日
    072
  • CentOS安装Docker-ce并配置国内镜像

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月7日
    089
  • Xvfb相关命令

    第一种启动方法:Xvfb :99-ac2>/dev/nullexport DISPLAY=:99xhost + & 第二种启动方法Xvfb-ac${DISPLAY:-…

    Linux 2023年6月13日
    092
  • JuiceFS 缓存预热详解

    缓存预热是一个比较常见的概念,相信很多小伙伴都有所了解。对于 JuiceFS 来说,缓存预热就是将需要操作的数据预先从对象存储拉取到本地,从而获得与使用本地存储类似的性能表现。 缓…

    Linux 2023年6月14日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球