Форум сайта python.su
День добрый. Есть ли в PyQt такая штука как QTimer? И если есть накидайте пожалуйста простой пример как он работает.
Офлайн
Соседняя тема http://python.su/forum/topic/26179/?page=1#post-140042
Офлайн
Вот простенький тест на использование таймера.
#!/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)
Офлайн
Все равно мне не очень как прикрутить. Вот есть к примеру обычная программа
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_())
Отредактировано art777 (Фев. 6, 2015 01:53:17)
Офлайн
Ну на пример вот так:
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_())
Офлайн