Python Qt常用控件查询文档(随时更新文档)

QT启动模板

from PySide2.QtWidgets import QApplication, QMessageBox
from PySide2.QtUiTools import QUiLoader

class Stats:

    def __init__(self):
        # 从文件中加载UI定义

        # 从 UI 定义中动态 创建一个相应的窗口对象
        # 注意:里面的控件对象也成为窗口对象的属性了
        # 比如 self.ui.button , self.ui.textEdit
        self.ui = QUiLoader().load('main.ui')#动态链接

        # self.ui.button.clicked.connect(self.handleCalc)#按钮链接

    def handleCalc(self):
        # info = self.ui.textEdit.toPlainText()#读取文本

        # QMessageBox.about(self.ui,
        #             '弹窗标题',
        #             '弹窗正文'
        #             )

app = QApplication([])
stats = Stats()
stats.ui.show()
app.exec_()

**

进度条

**
QProgressBar 是进度条,如下图所示
在这里插入图片描述
重点功能介绍
我们可以通过它的 setRange 方法设定步骤个数,比如
progressBar.setRange(0,5)
然后,通过 setValue 方法,指定当前完成到了哪一步,比如
progressBar.setValue(3)#进行到第三步

代码如下:

from PySide2.QtWidgets import QApplication, QMainWindow, QPushButton,  QProgressBar,QMessageBox
from time import sleep
from threading import  Thread

class Stats():
    def __init__(self):
        self.window = QMainWindow()
        self.window.resize(500, 400)
        self.window.move(300, 300)

        self.progressBar = QProgressBar(self.window)
        self.progressBar.resize(300, 20)
        self.progressBar.move(80, 30)
        # 进度是 0 - 5,
        self.progressBar.setRange(0,5)

        self.button = QPushButton('统计', self.window)
        self.button.move(80, 80)

        self.button.clicked.connect(self.handleCalc)

        # 统计进行中标记,不能同时做两个统计
        self.ongoing = False

    def handleCalc(self):
        def workerThreadFunc():
            self.ongoing = True
            for i in range(1,6):
                sleep(1)
                # 设置进度值
                self.progressBar.setValue(i)
            self.ongoing = False

        if self.ongoing:
            QMessageBox.warning(
                self.window,
                '警告','任务进行中,请等待完成')
            return

        # 通常任务执行比较耗时,应该在新的线程中进行
        # 否则会阻塞主线程显示界面
        worker = Thread(target=workerThreadFunc)
        worker.start()

app = QApplication([])
stats = Stats()
stats.window.show()
app.exec_()

参考链接:白月黑羽

猜你喜欢

转载自blog.csdn.net/weixin_50123771/article/details/108927061