A
We can't interact with an additional flow of view.
♪ Qt You should use it. сигналы и слоты♪You should study the section. https://doc.qt.io/qt-5/signalsandslots.html No change. code sgenerated Qt Designer, !♪ Create another class that inherits from the relevant view and use the established class to fill it.import sys
#import os
#import time
#from multiprocessing import Process
#from datetime import datetime
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QVBoxLayout, QMainWindow, QApplication,
QLabel, QWidget
from PyQt5.QtGui import QPixmap, QPalette
from PyQt5.QtCore import Qt, QObject, QThread
class UiMainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(362, 600)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.listWidget = QtWidgets.QListWidget(self.centralwidget)
self.listWidget.setGeometry(QtCore.QRect(10, 10, 336, 192))
self.listWidget.setObjectName("listWidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(20, 270, 331, 200))
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(10, 470, 141, 31))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Twitch"))
self.pushButton.setText(_translate("MainWindow", "Закрыть"))
class Thread(QtCore.QThread):
updateSignal = QtCore.pyqtSignal(str)
def __init__(self, status, parent=None):
super(Thread, self).__init__(parent)
self.status = status
self.i = 0
def run(self):
while True:
print(self.i)
self.updateSignal.emit(f'{self.status}{self.i}')
self.i += 1
self.msleep(1000)
class MainWindow(QMainWindow, UiMainWindow):
def init(self, streamers_links, status):
super().init()
self.setupUi(self)
self.streamers_links = streamers_links
self.status = status
self.pushButton.clicked.connect(self.exit)
self.btnThread = QtWidgets.QPushButton("btnThread", self.centralwidget)
self.btnThread.setGeometry(QtCore.QRect(170, 470, 141, 31))
self.btnThread.setObjectName("btnThread")
self.btnThread.clicked.connect(self.start_thread)
for links in range(len(self.streamers_links)):
item = QtWidgets.QListWidgetItem()
self.listWidget.addItem(item)
__sortingEnabled = self.listWidget.isSortingEnabled()
_translate = QtCore.QCoreApplication.translate
item = self.listWidget.item(links)
item.setText(_translate("MainWindow", self.streamers_links[links]))
self.listWidget.setSortingEnabled(__sortingEnabled)
self.statusUpgrader(status)
def statusUpgrader(self, status):
self.label.setText(status)
def exit(self):
raise SystemExit(1)
def start_thread(self):
self.btnThread.setEnabled(False)
self.thread = Thread(self.status)
self.thread.updateSignal.connect(self.statusUpgrader)
self.thread.start()
streamers_links = [
'https://www.twitch.tv/rainbow6',
'https://www.twitch.tv/r6esportsbr2',
'https://www.twitch.tv/rainbow6fr',
'https://www.twitch.tv/rainbow6de',
'https://www.twitch.tv/rainbow6es',
'https://www.twitch.tv/rainbow6jp',
'https://www.twitch.tv/rainbow6tw',
'https://www.twitch.tv/rainbow6cntwitch',
'https://www.twitch.tv/rainbow6th',
'https://www.twitch.tv/r6esportsna',
'https://www.twitch.tv/rainbow6latam',
'https://www.twitch.tv/rainbow6kr'
]
status = 'dadada'
if name == 'main':
app = QApplication(sys.argv)
w = MainWindow(streamers_links, status)
w.show()
sys.exit(app.exec())