Python QTimer 和带有 Qt 的图形用户界面 (GUI) 应用程序如何协同工作?

奥泰

我启动了计时器并以 1 秒的间隔连接到函数调用“read_file”。但是,GUI 界面没有出现。我不明白 Python QTimer 和 QT GUI 如何协同工作?我该怎么做才能让我的 GUI 页面弹出并显示 ping 状态。任何帮助我将不胜感激。

import sys
from reachable_gui import *
import subprocess
import threading
import time
from PyQt5.QtCore import QTimer
import os

def signal(self):
    
    self.Button_Manual.clicked.connect(Manual)
    self.Button_Pdf.clicked.connect(Pdf)
    read_file(self)
   
def Manual():
    pass

def Pdf():
    pass
      
def read_file(self):
        {
    #read line by line IP and device from a file and pass it to ping()
    }
  timer = QtCore.QTimer()
  timer.timeout.connect(self.read_file)
  timer.setInterval(1000)
  timer.start()
        
def ping(self,IP,name):
    { 
    # ping the device and update GUI status.
    }
    
Ui_MainWindow.ping = ping
Ui_MainWindow.signal = signal
Ui_MainWindow.Manual = Manual
Ui_MainWindow.Pdf = Pdf
Ui_MainWindow.read_file = read_file

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    ui.signal()
    MainWindow.show()
    sys.exit(app.exec_())
简单

我不知道这是否可以帮助您解决问题,但这是如何QTimer多次使用运行函数的示例

但是如果函数运行时间更长,那么它可能会创建更长的间隔。

import sys
from PyQt5.QtCore import QTimer
from PyQt5 import QtWidgets
import datetime
#import time
   
def read_file():
    #time.sleep(2) # simulate long-running function
    
    current_time = datetime.datetime.now().strftime('%Y.%m.%d - %H:%M:%S')
    label.setText(current_time)
    
    print('current_time:', current_time)
    

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    window = QtWidgets.QMainWindow()
    
    # some GUI in window
    label = QtWidgets.QLabel(window, text='???')
    window.setCentralWidget(label)
    window.show()
    
    # timer which repate function `read_file` every 1000ms
    timer = QTimer()
    timer.timeout.connect(read_file)
    timer.setInterval(1000)
    timer.start()
    
    sys.exit(app.exec())

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

带有TK的图形用户界面-按钮位置和操作

使Spark,Python和MongoDB协同工作

如何使JavaScript和Python协同工作?

Python:Qt-Gui和一些任务

管道参数和jenkins GUI参数如何协同工作?

带有python和conda的openCV的扩展GUI

Python线程,事件和队列如何协同工作?

如何在Python的gui和非gui应用程序中使用QThread?

设置QTimer间隔时Qt应用程序崩溃

剧情不更新Qt GUI和pyqtgraph Python

如何结束图形GUI和控制台功能(QT)?

如何在没有图形用户界面的情况下启动动脉示例

如何使Compose在GTK和Qt应用程序中工作?

如何删除图形用户界面?

Qt GUI应用程序内的终端

在Qt应用程序中连接GUI和计算

如何加载xampp图形用户界面?

OAuth和自定义Django用户模型如何协同工作?

带有QPaintEvent的QTimer

带有可选GUI的Qt应用程序

哪些工具可用于在没有图形用户界面的情况下调试远程主机上的python / django代码

如何从非管理员用户会话以管理员身份运行带有GUI的应用程序?

使用 Tkinter 的 Python 图形用户界面,错误

如何在没有连接显示器的情况下启动 Qt GUI 应用程序?

带有 Python 计算器应用程序的 GUI // 为什么按钮不显示?

ChrootDirectory 和用户的主目录如何协同工作?

Ceph S3 用户和子用户权限如何协同工作?

PulseAudioService pa_context_connect() 在所有 QT GUI 应用程序中失败

如何将使用 qt 和 python 创建的 gui 保存为图像