【发布时间】:2021-07-12 14:42:40
【问题描述】:
兄弟姐妹们,我只是想知道是否有人可以帮我将这个程序转换为 PyQt4。我尽力了,但我做不到;,)。它是一个在 UI 上显示实时文本的基本程序。
这是程序:
import sys
import time
import random
from PyQt5 import QtWidgets, QtCore
class WorkerThread(QtCore.QObject):
signal = QtCore.pyqtSignal(int)
def __init__(self):
super().__init__()
@QtCore.pyqtSlot()
def run(self):
while True:
number = random.randint(1, 1000)
self.signal.emit(number)
time.sleep(1)
class WorkerLabel(QtWidgets.QLabel):
def __init__(self, parent):
super().__init__()
@QtCore.pyqtSlot(int)
def slot(self, i):
self.setText(str(i))
class UserInterface(QtWidgets.QWidget):
def __init__(self, parent):
super().__init__()
self.label = WorkerLabel(self)
self.layout = QtWidgets.QVBoxLayout()
self.layout.addWidget(self.label)
self.setLayout(self.layout)
class Main(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
self.ui = UserInterface(self)
self.setCentralWidget(self.ui)
self.worker = WorkerThread()
self.workerThread = QtCore.QThread() # Move the Worker object to the Thread object
self.workerThread.started.connect(self.worker.run) # Init worker run() at startup
self.worker.moveToThread(self.workerThread)
self.worker.signal.connect(self.ui.label.slot)
self.workerThread.start()
self.show()
if __name__== '__main__':
app = QtWidgets.QApplication([])
gui = Main()
sys.exit(app.exec_())
【问题讨论】:
-
将
QtWidgets更改为QtGui -
请注意,StackOverflow不是移植服务。你说“我尽力了”,但老实说,我看不到任何尝试,你只是提供了一个功能齐全的 PyQt5 程序。而且,坦率地说,考虑到将它移植到 PyQt4 需要什么,我认为你根本没有做任何事情。
-
谢谢兄弟的热心回复,我有这个程序的编辑版本,我现在将它添加。感谢您的评论!