Loading

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())
posted @ 2023-02-08 23:48  青山新雨  阅读(16)  评论(0编辑  收藏  举报