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)

大家都在看

  • MySQL提权 通过UDF

    UDF是什么 命令执行 文本写入 Example: 远程写入 反弹Shell 提权 UDF是什么 参考:https://www.cnblogs.com/litlife/p/9030…

    Linux 2023年6月6日
    0106
  • 爱前端公开课学习笔记——JS03 运算符

    运算符的概述和加减运算课程丢失 乘法* 除法/ 直接在控制台中演示 主要是不要省略乘号 字符串不能进行乘除法运算 布尔型可以进行乘除法运算 false: 0 true: 1 乘除法…

    Linux 2023年6月14日
    085
  • 查询windows日志

    系统日志可以用来查看系统的一些信息,比如警告、错误、验证、开关机等。 打开系统日志 按下快捷键 win+R,输入 eventvwr.exe,并点击确定 查询开关机记录 点击左侧 W…

    Linux 2023年6月8日
    0114
  • Django中orm的双重方法

    orm中的双重方法 更新或创建 Draw2DDevice.objects.update_or_create( defaults={‘x’: 777, ‘y’: 777,}, dev…

    Linux 2023年6月14日
    080
  • Java引用类型

    1 强引用 当我们使用new创建对象时,被创建的对象就是强引用。只要有强引用,GC 永远不会回收掉该对象。 Map map = new HashMap(); 2 软引用 如果一个对…

    Linux 2023年6月7日
    0110
  • Golang 实现 Redis(5): 使用跳表实现 SortedSet

    本文是使用 golang 实现 redis 系列的第五篇, 将介绍如何使用跳表实现有序集合(SortedSet)的相关功能。 跳表(skiplist) 是 Redis 中 Sort…

    Linux 2023年5月28日
    0100
  • 用 shell 脚本制造连接频繁中断的场景

    问题的提出 最近在准备客户端的新版本,在内部灰度过程中,发现一类奇怪的 dump,通过查看日志和堆栈,可以确定是因为每次连上后台就被后台断开了、导致多次重连后随机发生的崩溃。dum…

    Linux 2023年6月6日
    094
  • LeetCode-459. 重复的子字符串

    题目来源 题目详情 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s = “abab”输出: true解释:…

    Linux 2023年6月7日
    0126
  • 甲骨文严查Java授权,换openJDK要避坑

    背景 外媒The Register报道,甲骨文稽查企业用户,近期开始将把过去看管较松散的Java授权加入。 甲骨文针对标准版Java(Java SE)有2种商业授权。2019年4月…

    Linux 2023年6月14日
    096
  • 一、Linux系统的简介与历史发展

    1.操作系统的介绍内核负责控制硬件资源分配,而如果只有内核,则只能让计算机硬件运行,而不能有任何功能,因此需要系统调用提供给开发者使用,从而开发应用程序;内核能够控制硬件,比如:让…

    Linux 2023年6月7日
    0154
  • JuiceFS 在 Elasticsearch/ClickHouse 温冷数据存储中的实践

    企业数据越存越多,存储容量与查询性能、以及存储成本之间的矛盾对于技术团队来说是个普遍难题。这个难题在 Elasticsearch 与 ClickHouse 这两个场景中尤为突出,为…

    Linux 2023年6月14日
    0123
  • 【Example】C++ std::thread 及 std::mutex

    与 Unix 下的 thread 不同的是,C++ 标准库当中的 std::thread 功能更加简单,可以支持跨平台特性。 因此在项目需要跨平台及对多线程简单应用情况下,应优先考…

    Linux 2023年6月13日
    065
  • bash 中 echo & printf

    首先列一下今天收获的消息 sh是: Bourne Shell(/usr/bin/sh或/bin/sh) bash是: Bourne Again Shell(/bin/bash) p…

    Linux 2023年6月6日
    0107
  • Linux文件查找命令find与三剑客之grep

    一、find 根据文件的名称或者属性查找文件。 语法格式: find [查找范围] [参数] 参数: -name : 按照文件的名字查找文件 * :通配符 -iname : 按照文…

    Linux 2023年5月27日
    0164
  • Jenkins

    Jenkins Jenkins jenkins简介 jenkins工作原理 jenkins特点 CI/CD是什么 使用tomcat容器安装jenkins jenkins流水线项目发…

    Linux 2023年6月6日
    0119
  • docker使用

    1 docker介绍,跟传统虚拟机的比较 2 docker架构图 3 docker安装 3.1 windows安装 3.2 乌班图 3.3 centos上安装(必须7.0以上) 3…

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