Найти - Пользователи
Полная версия: Таймер
Начало » GUI » Таймер
1
art777
День добрый. Есть ли в PyQt такая штука как QTimer? И если есть накидайте пожалуйста простой пример как он работает.
Rodegast
Соседняя тема http://python.su/forum/topic/26179/?page=1#post-140042
KriO
Вот простенький тест на использование таймера.
#!/usr/bin/env python2
# -*- coding: iso-8859-5 -*-
import time
from PyQt4 import QtGui,QtCore
class TimerTest(QtGui.QWidget):
    def __init__(self, parent=None):
        super(TimerTest, self).__init__(parent)
        vb = QtGui.QVBoxLayout()
        vb.setContentsMargins(30, 30, 30, 30)
        vb.setSpacing(0)
        self.setLayout(vb)
        self.lab = QtGui.QLabel(time.ctime()))
        vb.addWidget(self.lab)
        self.timerId = self.startTimer(1000) # 1 sec
    def stopTimer(self):
        if self.timerId:
            self.killTimer(self.timerId)
            self.timerId = 0
    def showTime(self):
        self.lab.setText(time.ctime())
 
    def timerEvent(self, event):
        self.showTime()
    
    def closeEvent(self, event):
        self.stopTimer()
        event.accept()
if __name__ == '__main__':
    import sys
    app = QtGui.QApplication(sys.argv)
    test = TimerTest()
    test.show()
    sys.exit(app.exec_())
art777
Все равно мне не очень как прикрутить. Вот есть к примеру обычная программа

from Designes.form1 import Ui_MainWindow
class mainForm(Ui_MainWindow):
def __init__(self):
Ui_MainWindow.__init__(self)
self.window = QtWidgets.QMainWindow() #окно, которое должно быть передано
self.setupUi(self.window) #этой функции и преображено ей
self.sett.clicked.connect(self.sett_onClick) #назначаем свои обработчики событий элементам

self.window.show()
def sett_onClick(self):


if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
form = maneForm()
sys.exit(app.exec_())

Как к примеру сделать чтоб при запуске через каждые 10 секунд на метке отображалось текущее время?
alex925
Ну на пример вот так:
import sys
 
from PyQt4 import QtCore, QtGui
 
def change_label(lab):
    lab.setText(lab.text() + '1')
 
app = QtGui.QApplication(sys.argv)
label = QtGui.QLabel('1')
label.resize(200, 150)
label.show()
timer = QtCore.QTimer()
timer.connect(timer, QtCore.SIGNAL('timeout()'), lambda: change_label(label))
timer.start(1000)
sys.exit(app.exec_())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB