PyQt5-快速上手笔记-01

窗口#

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())

作者:ALINGMAOMAO

出处:https://www.cnblogs.com/ALINGMAOMAO/p/17103764.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   青山新雨  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示