乐之之

知而行乐,乐而行之,天道酬勤,学无止境。
pyqt6基础小知识

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

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

posted on 2022-12-03 21:05  乐之之  阅读(493)  评论(0编辑  收藏  举报