Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 1, 2015 11:45:47

art777
Зарегистрирован: 2014-09-17
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Таймер

День добрый. Есть ли в PyQt такая штука как QTimer? И если есть накидайте пожалуйста простой пример как он работает.

Офлайн

#2 Фев. 1, 2015 13:28:35

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2679
Репутация: +  182  -
Профиль   Отправить e-mail  

Таймер

Соседняя тема http://python.su/forum/topic/26179/?page=1#post-140042



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Фев. 1, 2015 17:14:00

KriO
Зарегистрирован: 2012-10-07
Сообщения: 61
Репутация: +  9  -
Профиль   Отправить e-mail  

Таймер

Вот простенький тест на использование таймера.

#!/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_())

Отредактировано KriO (Фев. 1, 2015 18:15:07)

Офлайн

#4 Фев. 5, 2015 13:12:00

art777
Зарегистрирован: 2014-09-17
Сообщения: 16
Репутация: +  0  -
Профиль   Отправить e-mail  

Таймер

Все равно мне не очень как прикрутить. Вот есть к примеру обычная программа

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 секунд на метке отображалось текущее время?

Отредактировано art777 (Фев. 6, 2015 01:53:17)

Офлайн

#5 Фев. 6, 2015 13:17:36

alex925
Зарегистрирован: 2015-01-08
Сообщения: 204
Репутация: +  14  -
Профиль   Отправить e-mail  

Таймер

Ну на пример вот так:

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_())

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version