PyQT5在窗口上显示花费的时间

justRandomLearner

我有QMediaPlayer和QVideoWidget,它们可以用QLineEdit播放时间并完成程序QLineEdit的视频。我正在尝试做一个计数器,以显示用户在该程序上花费了多少分钟,以及当用户达到完成程序限制时弹出一个对话框。为此,我创建了一个线程函数:

def update_video_timer(self):
    end_time = int(self.end_time.text())
    start_time = 0
    while start_time <= end_time:
        self.spended_time.setText(str(start_time))
        start_time = start_time + 1
        # minutes
        time.sleep(60)

    # reachs limit
    self.mediaPlayer.pause()
    dlg = QDialog(self)
    dlg.setWindowTitle("YOUR TIME HAS FINISHED!")
    dlg.exec_()

当第一个视频开始播放时,我调用此函数:

from threading import Thread
Thread(target=self.update_video_timer())

但是问题是当视频开始播放时,程序冻结了。欢迎对我的代码进行任何帮助和/或改进。

永乐

GUI中的任务必须是异步的,并调用消耗很少时间的同步任务。如果同步任务消耗大量时间,则必须在另一个线程中执行它们。在您的情况下,不必使用while + time.sleep(),但是带有QTimer的计数器就足够了,因此不必使用线程:

    self.timer = QTimer(self, interval=60 * 1000)
    self.timer.timeout.connect(self.on_timeout)
    self.start_time = 0
    self.end_time = 0

def start(self):
    try:
        self.end_time = int(self.end_time.text())
    except ValueError as e:
        print("error")
    else:
        self.timer.start()

def on_timeout(self):
    if self.start_time <= self.end_time:
        self.start_time += 1
        self.spended_time.setText(str(self.start_time))
    else:
        self.timer.stop()
        self.mediaPlayer.pause()
        dlg = QDialog(self)
        dlg.setWindowTitle("YOUR TIME HAS FINISHED!")
        dlg.exec_()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PyQt5 在窗口之间切换

来自分类Dev

如何在Python / PyQt5 / PySide2 / Tkinter的任务栏中选择窗口工作区的特定部分显示在窗口缩略图中?

来自分类Dev

硒,运行firefox而不在窗口上显示窗口

来自分类Dev

如何编写Python代码pyqt5在主窗口上附加2个小部件

来自分类Dev

在pyqt5中继承的窗口上创建新组件

来自分类Dev

PyQt5在消息窗口中显示文件内容

来自分类Dev

PYQT5 窗口只显示局部视图

来自分类Dev

Java AWT drawString()不显示在窗口上

来自分类Dev

我试图在窗口上显示鼠标位置,但我无法更新窗口上的文本

来自分类Dev

PyQt5弹出窗口

来自分类Dev

CSV文件阅读器在窗口构建器中花费的时间太长

来自分类Dev

Pyqt5从QtWebChannel移动窗口

来自分类Dev

PyQt5 DatePicker弹出窗口

来自分类Dev

在窗口标题中显示当前日期和时间

来自分类Dev

Tkinter窗口,按钮和在PyQt5中显示HTML页面

来自分类Dev

python - pyqt5:显示两种形式时出错,未定义名称“窗口”

来自分类Dev

基于在窗口上设置的样式的样式未在Designer中显示(仅在运行时)

来自分类Dev

Python:如何在窗口上以不同颜色显示输出消息?

来自分类Dev

如何在窗口上设置图标

来自分类Dev

在窗口上连续应用groupby pyspark

来自分类Dev

如何在窗口上设置图标

来自分类Dev

CreateBitmap 图像未打印在窗口上

来自分类Dev

PyQt5 keyPressEvent的存储时间

来自分类Dev

如何使用qt5(QtQuick 2.1)及更高版本在窗口上打印度数符号

来自分类Dev

pyqt5从父窗口关闭子窗口

来自分类Dev

当辅助窗口关闭时刷新主窗口PyQt5

来自分类Dev

如何实现电子书阅读器,在窗口上显示2页电子书

来自分类Dev

图标显示在窗口上,但不在.exe文件上(gtk3 Windows7)

来自分类Dev

如何调整在PyQt5窗口内QWebEnginePage?

Related 相关文章

  1. 1

    PyQt5 在窗口之间切换

  2. 2

    如何在Python / PyQt5 / PySide2 / Tkinter的任务栏中选择窗口工作区的特定部分显示在窗口缩略图中?

  3. 3

    硒,运行firefox而不在窗口上显示窗口

  4. 4

    如何编写Python代码pyqt5在主窗口上附加2个小部件

  5. 5

    在pyqt5中继承的窗口上创建新组件

  6. 6

    PyQt5在消息窗口中显示文件内容

  7. 7

    PYQT5 窗口只显示局部视图

  8. 8

    Java AWT drawString()不显示在窗口上

  9. 9

    我试图在窗口上显示鼠标位置,但我无法更新窗口上的文本

  10. 10

    PyQt5弹出窗口

  11. 11

    CSV文件阅读器在窗口构建器中花费的时间太长

  12. 12

    Pyqt5从QtWebChannel移动窗口

  13. 13

    PyQt5 DatePicker弹出窗口

  14. 14

    在窗口标题中显示当前日期和时间

  15. 15

    Tkinter窗口,按钮和在PyQt5中显示HTML页面

  16. 16

    python - pyqt5:显示两种形式时出错,未定义名称“窗口”

  17. 17

    基于在窗口上设置的样式的样式未在Designer中显示(仅在运行时)

  18. 18

    Python:如何在窗口上以不同颜色显示输出消息?

  19. 19

    如何在窗口上设置图标

  20. 20

    在窗口上连续应用groupby pyspark

  21. 21

    如何在窗口上设置图标

  22. 22

    CreateBitmap 图像未打印在窗口上

  23. 23

    PyQt5 keyPressEvent的存储时间

  24. 24

    如何使用qt5(QtQuick 2.1)及更高版本在窗口上打印度数符号

  25. 25

    pyqt5从父窗口关闭子窗口

  26. 26

    当辅助窗口关闭时刷新主窗口PyQt5

  27. 27

    如何实现电子书阅读器,在窗口上显示2页电子书

  28. 28

    图标显示在窗口上,但不在.exe文件上(gtk3 Windows7)

  29. 29

    如何调整在PyQt5窗口内QWebEnginePage?

热门标签

归档