Мой код:
Код: Выделить всё
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
Я пытался убить поток по таймеру, и это привело к сбою. Я попробовал многопроцессорность, но это не сработало, и я попробовал QThread, что тоже вызвало у меня проблемы
Подробнее здесь: https://stackoverflow.com/questions/790 ... ging-pyqt6