首页 > 其他分享 >PyQt5-快速上手笔记

PyQt5-快速上手笔记

时间:2023-02-08 23:57:07浏览次数:81  
标签:__ self 笔记 init PyQt5 QWidget 快速 def

窗口

import sys
from PyQt5.QtWidgets import QApplication, QWidget
from PyQt5.QtGui import QIcon

class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.image = "./data/web.webp"

        self.initUI()

    def initUI(self):

        self.setGeometry(300, 300, 300, 220)
        self.setWindowTitle("Icon")
        self.setWindowIcon(QIcon(self.image))

        self.show()

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

按钮

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):
        QToolTip.setFont(QFont("SimSun", 10))  # 设置提示框的字体

        self.setToolTip("这是一个<b>窗口</b>")

        btn = QPushButton("Button", self)
        btn.setToolTip("这是一个<b>按键</>")
        btn.resize(btn.sizeHint())
        btn.move(50, 50)

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle("提示框")
        self.show()

关闭按钮

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

class myWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        qbtn = QPushButton("关闭", self)
        qbtn.clicked.connect(QCoreApplication.instance().quit)

        # 修改qbtn的style
        qbtn.resize(qbtn.sizeHint())
        qbtn.move(50, 50)

        # 设置整个框架的形式
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle("退出按键")
        self.show()

消息盒子

from PyQt5.QtWidgets import QWidget, QMessageBox

class myWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle("文本框")
        self.show()

    def closeEvent(self, event):
        reply = QMessageBox.question(self, "Message",
                                     "你确认要退出嘛?",
                                     QMessageBox.Yes|QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes :
            event.accept()
        else:
            event.ignore()

如果关闭QWidget,就会产生一个QCloseEvent,并且把它传入到closeEvent函数的event参数中。改变控件的默认行为,就是替换掉默认的事件处理。
我们创建了一个消息框,上面有俩按钮:Yes和No.第一个字符串显示在消息框的标题栏,第二个字符串显示在对话框,第三个参数是消息框的俩按钮,最后一个参数是默认按钮,这个按钮是默认选中的。返回值在变量reply里

消息盒子

QtGui.QDesktopWidget提供了用户的桌面信息,包括屏幕的大小。

cp = QDesktopWidget().availableGeometry().center()

获取显示器的分辨率,然后返回屏幕中心的位置

self.move(qr.topLeft())

然后通过move函数把主窗口的左上角移动到其框架的左上角,这样就把窗口居中了。

from PyQt5.QtWidgets import QWidget, QDesktopWidget

class myWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # 设置整个窗口
        self.resize(250, 150)
        self.center()
        self.setWindowTitle("居中窗口")
        self.show()

    def center(self):
        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

标签:__,self,笔记,init,PyQt5,QWidget,快速,def
From: https://www.cnblogs.com/ALINGMAOMAO/p/17103764.html

相关文章

  • 如何使用 Node.js 和 OpenAI API 快速开发一个私有的 ChatGPT 智能聊天机器人程序 All
    如何使用Node.js和OpenAIAPI快速开发一个私有的ChatGPT智能聊天机器人程序AllInOneOpenAIAPIhttps://platform.openai.com/docs/libraries/node-js-library$......
  • Redis课程笔记
    Redis安装前台启动后台启动1)备份redis.conf2)修改配置:deamonizeyes3)执行redis-server配置文件的目录key键操作select[dbindex]切换库keys*查所有key......
  • 树链剖分 学习笔记
    树链剖分学习笔记树链剖分(Treedecomposition),顾名思义,是一种将树剖分为若干条链,使得可以用数据结构维护树上信息的数据结构。树链剖分有多种意思,包括重链剖分、长链剖分......
  • FL论文笔记 Hierarchically Fair Federated Learning,Shapley计算贡献
    相关笔记:https://blog.csdn.net/wuxusanren/article/details/128651334相关综述论文:《ASurveyofIncentiveMechanismDesignforFederatedLearning》《联邦学习激励......
  • 一点seq2seq的笔记
    一点seq2seq的笔记Date:2023-02-08T21:33:00+08:00毕设,看了点神经网络的内容。RNN的输入是asequenceofvector,感觉RNN像在训练一个cell,喂给cell一个vector......
  • 快速排序 golang实现
    快速排序golang实现直接上代码,有问题联系我packagesortimport"testing"funcQuickSort(arr[]int,begin,endint)[]int{ ifbegin>=end{ returnarr }......
  • 如何快速开通流量主
    本文首发于微信公众号【小蚂蚁教你做游戏】,欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。嗨!大家好,我是小蚂蚁。之前写过一篇个人开发者如何开通流量主......
  • 《代码整洁之道》 读书笔记 一、整洁代码
    1.整洁代码1.1要有代码代码不再是问题;我们应当关注模型和需求。代码很快就能自动产出。这种言论是不正确的。因为代码呈现了需求的细节,在某些层面上,这些细节无法被忽......
  • 自我介绍&学习笔记
    这个作业属于哪个课程https://edu.cnblogs.com/campus/fzzcxy/2023learning这个作业要求在哪里https://edu.cnblogs.com/campus/fzzcxy/2023learning/homework/1......
  • 第三天笔记
    第三天笔记程序控制语句条件控制语句(根据不同的条件进入不同的代码块)循环控制语句(根据循环条件进行多次循环)循环控制语句流程定义初始值设置迭代条件......