Переменная не меняется PyQt6 ⇐ Python

Программы на Python
Anonymous
Переменная не меняется PyQt6

Сообщение Anonymous »

Я пишу простой таймер (на PyQt6) и пытаюсь реализовать функцию паузы и возобновления паузы. Хотя это должно быть достаточно просто, переменная timerRunning не меняется.
Мой код:

Код: Выделить всё

from PyQt6.QtCore import *
from PyQt6.QtWidgets import *
from PyQt6 import uic
import sys
import time
import threading

class MainUI(QMainWindow):
def __init__(self):
super(MainUI, self).__init__()
uic.loadUi('test.ui', self)
self.show()
app = QApplication(sys.argv)
app.setDesktopFileName("ftimer")
window = MainUI()
timerRunning = None

def UpdateLabel(seconds, label):

tminutes = int((seconds / 60) % 60)
tseconds = seconds % 60
label.setText(f"{tminutes} : {tseconds}")

def StartTimer():
timerRunning = True

def Timer(label, seconds):

while timerRunning:
seconds = seconds - 1
UpdateLabel(seconds, label)
time.sleep(1)
app.processEvents()

def StopTimer():
timerRunning = False

seconds = 300
timer = threading.Thread(target=Timer, args=(window.Time, seconds, ))
timer.start()
#window.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground, True)
window.setWindowTitle("Focus Timer")
window.StartTimer.clicked.connect(StartTimer)
window.StopTimer.clicked.connect(StopTimer)
#window.setWindowOpacity(0.5)
app.exec()
Мой файл пользовательского интерфейса:

Код: Выделить всё


MainWindow



0
0
763
275



MainWindow


background-color: #282A2E;





90
170
591
20





QProgressBar::chunk {
background-color: #02ad5a;
width: 20px;
}


100








90
80
111
41




Ubuntu Mono
14



color: #aabdb4;


Start





580
80
111
41




Ubuntu Mono
14



color: #aabdb4;



Stop





210
60
361
91




Ubuntu
72



color: #aabdb4


5 : 00


Qt::AlignmentFlag::AlignCenter








Как вы можете видеть, у меня есть кнопки, которые соответствуют StartTimer и StopTimer, но timerRunning остается None. p>
Я пытался убить поток по таймеру, и это привело к сбою. Я попробовал многопроцессорность, но это не сработало, и я попробовал QThread, что тоже вызвало у меня проблемы


Подробнее здесь: https://stackoverflow.com/questions/790 ... ging-pyqt6

Вернуться в «Python»