Python

Как да използваме PyQt QTimer

Как да използваме PyQt QTimer
Класът QTimer на библиотеката PyQt позволява на потребителите да създават цифров часовник, брояч на времето, лента за напредъка и др. Този клас се използва за създаване на редовен таймер, който изпраща сигнал, когато таймерът се задейства и той наследява от QObject клас. Обектът на QTimer class е създаден като дете на приспособление. Когато джаджата се изтрие, обектът таймер също се изтрива. The QTimer class осигурява статична функция, наречена singleShot () които могат да се използват за извикване на функция след определен период. Този урок ви показва как да използвате QTimer клас за създаване на свързани с времето приложения на PyQt.

Използване на QTimer

Следващите раздели предоставят примери, които илюстрират как да се реализират две различни приложения с помощта на класа QTimer.

Пример 1: Създайте хронометър

Следният скрипт ще внедри приложение за хронометър в Python, използвайки класа QTimer. Това приложение ще отчита броя на секундите и броя на минутите. Два бутона се използват за стартиране, спиране, възобновяване и нулиране на брояча. Когато потребителят щракне върху Започнете бутон, броячът ще започне да брои и надписът на Започнете бутонът ще бъде променен на Спри се. Когато потребителят щракне върху Започнете бутон с надпис Спри се, броячът ще спре временно и надписът на Започнете бутонът ще бъде променен на Продължи за да продължите брояча към следващия път. Когато потребителят щракне върху Нулиране бутон, всички стойности на брояча ще бъдат инициализирани до 0.

# Импортирайте необходимите модули
импортиране на sys
от PyQt5.Внос на QtWidgets *
от PyQt5.Внос на QtCore *
# Определете класа, за да създадете хронометър
клас StopWatchWindow (QMainWindow):
def __init __ (самостоятелно):
# Извикайте родителския конструктор
супер ().__в него__()
# Задайте заглавието на прозореца
себе си.setWindowTitle ("Стоп часовник с помощта на QTimer")
# Задайте геометрията на прозореца
себе си.setGeometry (100, 100, 300, 200)
# Задайте необходимите променливи
себе си.брояч = 0
себе си.минута = '00'
себе си.второ = '00'
себе си.брой = '00'
себе си.startWatch = Невярно
# Създайте етикет за показване на часовника
себе си.label = QLabel (самостоятелно)
# Задайте геометрия за етикета
себе си.етикет.setGeometry (100, 40, 150, 70)
# Създаване на бутон за стартиране
себе си.start = QPushButton ("Старт", самостоятелно)
# Задайте геометрия на бутона за стартиране
себе си.старт.setGeometry (50, 120, 100, 40)
# Извикайте метода start () при щракване върху бутона за стартиране
себе си.старт.натиснат.свързване (самостоятелно.Старт)
# Създаване на бутон за нулиране
resetWatch = QPushButton ("Нулиране", самостоятелно)
# Задайте геометрия на бутона за спиране
resetWatch.setGeometry (160, 120, 100, 40)
# Метод за извикване на нулиране () при щракване върху бутона за нулиране
resetWatch.натиснат.свързване (самостоятелно.Нулиране)
# Създайте обект с таймер
таймер = QTimer (самостоятелно)
# Добавете метод с таймера
таймер.изчакване.свързване (самостоятелно.showCounter)
# Извикайте метода start (), за да промените стойността на таймера
таймер.старт (100)
# Преместете позицията на прозореца
себе си.преместване (900, 400)
# Показване на прозореца
себе си.покажи ()
# Определете метод за промяна на стойностите на минути и секунди въз основа на стойността на таймера
def showCounter (самостоятелно):
# Проверете стойността на променливата startWatch, за да стартирате или спрете секундомера
ако аз.startWatch:
# Увеличаване на брояч с 1
себе си.брояч + = 1
# Пребройте и задайте стойността на брояча на времето
cnt = int ((самостоятелно.брояч / 10 - int (самостоятелно.брояч / 10)) * 10)
себе си.count = '0' + str (cnt)
# Задайте втората стойност
ако int (самостоятелно.брояч / 10) < 10 :
себе си.second = '0' + str (int (самостоятелно.брояч / 10))
друго:
себе си.second = str (int (самостоятелно.брояч / 10))
# Задайте минутна стойност
ако аз.брояч / 10 == 60.0:
себе си.второ == '00'
себе си.брояч = 0
min = int (самостоятелно.минута) + 1
ако мин < 10 :
себе си.minute = '0' + str (мин)
друго:
себе си.минута = str (мин)
# Обединете стойностите на mintue, second и count
текст = себе си.минута + ':' + себе си.второ + ':' + себе си.броя
# Показвайте стойностите на хронометъра в етикета
себе си.етикет.setText ('

„+ текст +“

')
# Определете метод за обработка на стартовия бутон
def Start (самостоятелно):
# Задайте надписа на бутона за стартиране въз основа на предишния надпис
ако аз.старт.text () == 'Стоп':
себе си.старт.setText ('Възобновяване')
себе си.startWatch = Невярно
друго:
# make startWatch към вярно
себе си.startWatch = Вярно
себе си.старт.setText ('Стоп')
# Определете метод за обработка на бутона за нулиране
def Нулиране (самостоятелно):
себе си.startWatch = Невярно
# Нулиране на всички броячни променливи
себе си.брояч = 0
себе си.минута = '00'
себе си.второ = '00'
себе си.брой = '00'
# Задайте началните стойности за хронометъра
себе си.етикет.setText (str (самостоятелно.брояч))
# Създайте обект на приложение и стартирайте приложението
app = QApplication (sys.argv)
stopWt = StopWatchWindow ()
ап.exec ()

След изпълнението на горния скрипт ще се появи следният прозорец.

Хронометърът ще започне да работи, след като потребителят щракне върху Започнете бутон.

Броячът ще спре да брои, след като потребителят щракне върху Спри се бутон.

Пример 2: Създайте цифров часовник

Следният скрипт ще внедри цифров часовник в Python с помощта на QTimer клас. Скриптът ще покаже цифровия часовник в етикет, като чете текущото системно време веднъж на секунда.

# Импортирайте необходимите модули
импортиране на sys
от PyQt5.QtWidgets импортират QApplication, QWidget, QLabel, QVBoxLayout
от PyQt5.QtCore импортиране QTimer, QTime, Qt
от PyQt5.QtGui импортира QFont
# Определете клас за създаване на цифров часовник
клас DigitalClock (QWidget):
def __init __ (самостоятелно):
супер ().__в него__()
# Създайте етикет с шрифт и подравняване
себе си.lblTimer = QLabel ()
font = QFont ('Times', 50)
себе си.lblTimer.setFont (шрифт)
себе си.lblTimer.setAlignment (Qt.AlignCenter)
# Създайте обект с променливо оформление
v_layout = QVBoxLayout ()
v_layout.addWidget (самостоятелно.lblTimer)
себе си.setLayout (v_layout)
# Създайте обекта на таймера и извикайте необходимите методи за показване на часовника
таймер = QTimer (самостоятелно)
таймер.изчакване.свързване (самостоятелно.showClock)
таймер.старт (1000)
# Задайте заглавието на прозореца
себе си.setWindowTitle ("Цифров часовник с помощта на QTimer")
# Преоразмерете прозореца
себе си.преоразмеряване (270, 120)
# Преместете позицията на прозореца
себе си.преместване (800, 400)
# Метод на повикване за показване на часа
себе си.showClock ()
# Показване на прозореца
себе си.покажи ()
def showClock (самостоятелно):
# Прочетете текущото време
Current_Time = QTime.текущо време()
# Показване на цифровия часовник
себе си.lblTimer.setText ('

'+ Current_Time.toString ('hh: mm: ss AP') + '

')
# Създайте обект на приложение и стартирайте приложението
app = QApplication (sys.argv)
win = DigitalClock ()
ап.exec ()

Следващият изходен прозорец ще се появи след изпълнението на горния скрипт.

Заключение

Стойността на датата и часа на текущото системно време може да се чете по различни начини, като се използва класът QTimer на библиотеката PyQt. Класът QTimer е използван в този урок за изпълнение на различни примерни скриптове, свързани с времето.

Как да покажа брояч на FPS в игрите на Linux
Linux игрите получиха голям тласък, когато Valve обяви поддръжка на Linux за Steam клиент и техните игри през 2012 г. Оттогава много AAA и независими ...
Как да изтеглите и пуснете Civilization VI на Сид Майер на Linux
Въведение в играта Civilization 6 е модерен поглед върху класическата концепция, въведена в поредицата от игрите Age of Empires. Идеята беше доста про...
Как да инсталирате и играете Doom на Linux
Въведение в Doom Серията Doom възниква през 90-те години след пускането на оригиналния Doom. Това беше незабавен хит и от този момент нататък серията ...