Найти - Пользователи
Полная версия: отображение времени, PyQt4
Начало » GUI » отображение времени, PyQt4
1
Jacpot
Есть QTimer, который через определенный промежуток времени вызывает некоторую функцию.
Как отобразить в окошке время, через которое таймер запустит функцию?
apologize828
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_()
А вообще смотри сам какой виджет тебе подходит больше-тот и используй))
Jacpot
ясно, а я думал сначала там QTimeEdit пожет помочь, а тут вон как :)
apologize828, спасибо большое за твое участие и время!
apologize828
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_()
Там уже конечно смотришь какое время тебе нужно!Короче чуть фантазии и напряжения мозгов и можно какой-то ка хочешь изврат придумать))
Jacpot
apologize828
Не за что!
Там и с таймедитом можно!Я же говорю куда хочешь туда и выводи)))
Да, это понятно, но я имел ввиду что QTimer ставишь например на 10, а QTimeEdit отображает время QTimer'a.
apologize828
Jacpot
apologize828
Не за что!
Там и с таймедитом можно!Я же говорю куда хочешь туда и выводи)))
Да, это понятно, но я имел ввиду что QTimer ставишь например на 10, а QTimeEdit отображает время QTimer'a.
Ну тут смысл такой же:

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

Так как я пока сам почти не работал с таймерами и тем более с потоками!то из доков по таймеру я для себя пока вынес только это))
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