Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 6, 2010 08:33:24

Jacpot
От:
Зарегистрирован: 2010-06-01
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

отображение времени, PyQt4

Есть QTimer, который через определенный промежуток времени вызывает некоторую функцию.
Как отобразить в окошке время, через которое таймер запустит функцию?



Офлайн

#2 Июнь 6, 2010 11:32:20

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

отображение времени, PyQt4

Jacpot
Есть QTimer, который через определенный промежуток времени вызывает некоторую функцию.
Как отобразить в окошке время, через которое таймер запустит функцию?
Если я правильно понял то типа такого(не совсем красиво,но главное смысл):
#!usr/bin/pytnon
#-*- coding: utf-8 -*-

from PyQt4 import QtGui,QtCore
import sys

class My_Class(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.a=10
self.b=1
hb=QtGui.QHBoxLayout()
self.sp=QtGui.QSpinBox()
self.sp.setEnabled(False)
self.bt=QtGui.QPushButton('0')
self.tm=QtCore.QTimer()
hb.addWidget(self.bt)
hb.addWidget(self.sp)
self.setLayout(hb)

self.bt.clicked.connect(self.click_bt)
self.tm.timeout.connect(self.poehali)

def click_bt(self):
self.tm.start(1000)

def poehali(self):
self.sp.setValue(self.a)
self.a-=1
if self.a==-1:
self.bt.setText(str(self.b))
self.b+=1
self.a=10
self.tm.stop()

app=QtGui.QApplication(sys.argv)
wg=My_Class()
wg.show()
app.exec_()
Или так)):
#!usr/bin/pytnon
#-*- coding: utf-8 -*-

from PyQt4 import QtGui,QtCore
import sys

class My_Class(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.a=10
self.b=1
hb=QtGui.QHBoxLayout()
self.sp=QtGui.QLineEdit()
self.sp.setEnabled(False)
self.sp.setVisible(False)
self.bt=QtGui.QPushButton('0')
self.tm=QtCore.QTimer()
hb.addWidget(self.bt)
hb.addWidget(self.sp)
self.setLayout(hb)

self.bt.clicked.connect(self.click_bt)
self.tm.timeout.connect(self.poehali)

def click_bt(self):
self.sp.setVisible(True)
self.tm.start(1000)

def poehali(self):
self.sp.setText(str(self.a))
self.a-=1
if self.a==-1:
self.bt.setText(str(self.b))
self.b+=1
self.a=10
self.tm.stop()
self.sp.setVisible(False)

app=QtGui.QApplication(sys.argv)
wg=My_Class()
wg.show()
app.exec_()
А вообще смотри сам какой виджет тебе подходит больше-тот и используй))



Отредактировано (Июнь 6, 2010 11:51:53)

Офлайн

#3 Июнь 6, 2010 16:16:05

Jacpot
От:
Зарегистрирован: 2010-06-01
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

отображение времени, PyQt4

ясно, а я думал сначала там QTimeEdit пожет помочь, а тут вон как :)
apologize828, спасибо большое за твое участие и время!



Офлайн

#4 Июнь 6, 2010 16:19:53

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

отображение времени, PyQt4

Jacpot
ясно, а я думал сначала там QTimeEdit пожет помочь, а тут вон как :)
apologize828, спасибо большое за твое участие и время!
Не за что!
Там и с таймедитом можно!Я же говорю куда хочешь туда и выводи)))
#!usr/bin/pytnon
#-*- coding: utf-8 -*-

from PyQt4 import QtGui,QtCore
import sys

class My_Class(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.a=10
self.b=1
hb=QtGui.QHBoxLayout()
self.sp=QtGui.QTimeEdit()
self.sp.setDisplayFormat("ss")
self.sp.setEnabled(False)
self.sp.setVisible(False)
self.bt=QtGui.QPushButton('0')
self.tm=QtCore.QTimer()
hb.addWidget(self.bt)
hb.addWidget(self.sp)
self.setLayout(hb)

self.bt.clicked.connect(self.click_bt)
self.tm.timeout.connect(self.poehali)

def click_bt(self):
self.sp.setVisible(True)
self.tm.start(1000)

def poehali(self):
self.sp.setTime(QtCore.QTime(0,0,self.a))
self.a-=1
if self.a==-1:
self.bt.setText(str(self.b))
self.b+=1
self.a=10
self.tm.stop()
self.sp.setVisible(False)

app=QtGui.QApplication(sys.argv)
wg=My_Class()
wg.show()
app.exec_()
Там уже конечно смотришь какое время тебе нужно!Короче чуть фантазии и напряжения мозгов и можно какой-то ка хочешь изврат придумать))



Отредактировано (Июнь 6, 2010 16:25:49)

Офлайн

#5 Июнь 6, 2010 18:44:46

Jacpot
От:
Зарегистрирован: 2010-06-01
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

отображение времени, PyQt4

apologize828
Не за что!
Там и с таймедитом можно!Я же говорю куда хочешь туда и выводи)))
Да, это понятно, но я имел ввиду что QTimer ставишь например на 10, а QTimeEdit отображает время QTimer'a.



Офлайн

#6 Июнь 6, 2010 19:38:09

apologize828
От:
Зарегистрирован: 2010-02-13
Сообщения: 223
Репутация: +  1  -
Профиль   Отправить e-mail  

отображение времени, PyQt4

Jacpot
apologize828
Не за что!
Там и с таймедитом можно!Я же говорю куда хочешь туда и выводи)))
Да, это понятно, но я имел ввиду что QTimer ставишь например на 10, а QTimeEdit отображает время QTimer'a.
Ну тут смысл такой же:

Создаем таймер, затем делаем ф-цию которая должна выполняться, вешаем ее на таймер, запускаем таймер(ставим 1сек на повторение) и готова! только мы взяли доп. переменную(self.a=10) типа которую в кавычках можно назвать переменной-таймера))) которая и будет отображаться в GUI! Я сделал так потому что ведь как мы поставим таймер на 10 сек? мы же запишем это в МИЛЛЕСЕКУНДАХ ,а нам надо отсчитывать секунды, минуты и часы, так что чтобы все нормально было в GUI для этого и придумал такую штуку)))

Так как я пока сам почти не работал с таймерами и тем более с потоками!то из доков по таймеру я для себя пока вынес только это))



Отредактировано (Июнь 6, 2010 19:44:52)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version