首页 > 其他分享 >pyqt6基础小知识

pyqt6基础小知识

时间:2022-12-03 21:11:26浏览次数:42  
标签:qr 窗口 center self 知识 基础 pyqt6 StandardButton QMessageBox

pyqt6的类被分为几个模块,包括以下模块:

  • QtCore

    • 包含了核心的非GUI功能,这个模块用于处理时间、文件和目录、各种数据类型、url、线程和进程

  • QtGUI

    • 包含窗口系统集成、事件处理、2D图形、基本图像、字体和文本等类

  • QtWidgets

    • 提供了UI元素来创建经典的桌面风格的用户界面

1、QToolTip窗口字体及窗口名设置

(1)窗口字体设置

  QToolTip.setFont(QFont("SansSerif",10))

(2)窗口名设置

  第一种:变量名方式设置

  • w = QWidget()创建窗口对象,然后设置标题w.setWindowTitle("窗口名")。

  第二种:类中设置

  • self.setWindowTitle("窗口名")

2、QPushButton按钮

  • 需模块导入from PyQt6.QtWidgets import QToolTip,QPushButton

(1)按钮设置方式

  • 变量名 = QPushButton("按钮名",self)

(2)若在该按钮上加入消息停留提示

  • 变量名.setToolTip("这是一个消息提示控件")

(3)默认大小

btn.resize(btn.sizeHint())

3、QFont字体设置

  • 需模块导入from PyQt6.QtGui import QFont
QToolTip.setFont(QFont("SansSerif", 10))

4、运行函数三剑客

(1)运行当前程序或文件

  • 变量名 = QApplication(sys.argv)

(2)调用类

  Tip为类名

  • ex = Tip()

(3)将应用程序进行主循环,同时可以接收事件。

  • sys.exit(app.exec())

完整代码

def main():
    app = QApplication(sys.argv)
    ex =Tip()
    sys.exit(app.exec())

5、关联退出事件

qbtn = QPushButton("退出",self)
qbtn.clicked.connect(QApplication.instance().quit)

6、消息判断框

步骤一:

  先另写一个pyqt6自带的函数:closeEvent(self, event):

步骤二:抛出问题方法

  reply = QMessageBox.question(self,"消息提示","是否要退出?",QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No,QMessageBox.StandButton.No) (最后一个默认为No)

步骤三:判断

  若返回值为YES,则事件接收,并退出。

  if reply == QMessageBox.StandardButton.Yes:

    event.accept()

  其他情况视为NO,对其他事件不理睬,返回该程序当中。

  else:

    event.ignore()

完整代码:

    def closeEvent(self, event):
        reply = QMessageBox.question(self, "消息提示", "是否要退出?", QMessageBox.StandardButton.Yes |
                                     QMessageBox.StandardButton.No, QMessageBox.StandardButton.Yes)
        if reply == QMessageBox.StandardButton.Yes:
            # 如果返回的值为YES,则事件接受,即退出。
            event.accept()
        # 其他情况为No,则事件不理睬,回到当前程序。
        else:
            event.ignore()

效果

7、中心窗口

(程序运行,窗口自动显示在屏幕中心位置)

步骤一:

  • 将自带的center()方法写入类的属性中。
self.center()

步骤二:

  • 将窗口居中的代码放在自定义center方法中。
  def center(self):

    qr = self.frameFeometry()

步骤三:

  • 计算显示的屏幕分辨率,通过分辨率,得到中心点。
cp = self.screen().availableGeometry().center()

步骤四:

  • 移动到屏幕中心,矩形大小不变
qr.moveCenter(cp)

步骤五:

  • 将应用程序的左上角移动到qr矩形的左上角,使窗口在屏幕上居中。
self.move(qr.topLeft())

完整代码:

def center(self):
    # 将窗口居中的代码放置在自定义center方法中
    qr = self.frameGeometry()
    # 计算出显示的屏幕分辨率,通过这个分辨率,我们得到中心点
    cp = self.screen().availableGeometry().center()

    # 设置为屏幕的中心,矩形的大小不变
    qr.moveCenter(cp)
    # 将应用程序窗口的左上角移动到qr矩形的左上角,使窗口在屏幕上居中
    self.move(qr.topLeft())

目前先初步认识,待后续...

标签:qr,窗口,center,self,知识,基础,pyqt6,StandardButton,QMessageBox
From: https://www.cnblogs.com/LoLong/p/16948780.html

相关文章

  • 泛型—JAVA基础学习
    泛型泛型的简单了解为什么引入泛型?泛型可以视为编写代码时的语法检查这里可以通过一个简单的例子来看当不使用泛型时:classStove{ publicstaticObjectheat(Obj......
  • 2022-2023-1 20221317《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程:首页-2022-2023-1-计算机基础与程序设计-北京电子科技学院-班级博客-博客园(cnblogs.com)这个作业的要求在:2022-2023-1《计算......
  • 进击的K8S:Kubernetes基础概念
    Kubernetes简介Kubernetes简称K8S(因为k和s中间有8个字母),是一个开源的容器集群管理平台,基于Go语言编写。使用K8S,将简化分布式系统上的容器应用部署,使得开发人员可以专注于......
  • Java基础语法部分
    第一天(12.01)语句以分号结束起名以'_','$'和字母开头使用final定义常量'^'表示异或,相同为false算术运算符'+'的使用从左到右逐个执行只要有字符串参与,就会将前......
  • 编程路-基础提升-第五周-01
    字典与集合字典和集合也是一种存储数据的方式,字典尤其独特的存储、调用程序。字典的应用场景存储一个数据的属性可以快速找到需要的数据创建字典的语法{key:value......
  • 2022-2023-1 20221307《计算机基础和程序设计》第十四周学习总结
    这个作业属于那个班级 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14作业目标学习《C语言程......
  • java基础-01
    一、Hello,world首先创建java文件,文件名字为Hello.java,代码如下。然后使用javac编译Hello.java。当编译完成之后,生成一个Hello.class。这个时候javaHello.javapubl......
  • Promise基础知识
    Promise1.Promise的前置小知识进程(厂房)程序的运行环境线程(工人)线程是实际进行运算的东西同步通常情况代码都是自上向下一行一行执行的前边的代码不执行......
  • 2022-2023-1 20221427 《计算机基础与程序设计》第十四周学习总结
    2022-2023-120221427《计算机基础与程序设计》第十四周学习总结 2022-2023-120221427《计算机基础与程序设计》第十四周学习总结作业信息班级链接(2022-2023-......
  • <8> httpx基础
    支持HTTP/2.0,异步1.安装pipinstallhttpx[http2]2.基本使用(类似requests)httpx默认使用的HTTP/1.1,需要手动声明才能使用HTTP/2.0importhttpxclient=httpx.Cli......