2012-03-08 2 views
0

Qt 디자이너 및 python2.7 사용. Qt Designer 버튼과 LCD 번호에서 "카운트 업"타이머를 생성하려고합니다. 하나의 버튼을 시작하고 타이머와 LCD 번호를 재설정하여 hh : mm : ss 형식으로 전달 된 시간을 표시하고 싶습니다. 또한 40 분에 "팝업"창을 표시하려고하고 "Good Job You Made It!"메시지를 표시하려고합니다.Qt 디자인 단추 및 LCD 번호가 포함 된 Python 타이머

답변을 검색하고 다양한 검색 조합을 시도해 보았습니다. 이제 모든 결과가 보라색으로 표시됩니다 (이미 링크를 따라갔습니다)! LOL 다른 언어와 카운트 다운 타이머 및 타이머 및 언어의 다른 모든 조합을 비롯한 많은 예제를 볼 수 있지만 파이썬은 없습니다. 진지하게, 나는 이것을 며칠 동안 알아 내려고 노력해 왔으며, 아무데도 가지 못하고있다.

아래 코드는 제가 가지고있는 코드입니다. 내가 필요한 부분은 "def doStartReset (self) :"함수/메소드의 나머지 부분이라고 생각하고 있습니다.

희망 충분합니다. 감사!

#!/usr/bin/python2.7 
import sys 
from PyQt4 import QtGui,QtCore 
from timer_ui import * 

class MyForm(QtGui.QMainWindow): 
     def __init__(self, parent=None): 
       #build parent user interface 
       QtGui.QWidget.__init__(self, parent) 
       self.ui = Ui_MainWindow() 
       self.ui.setupUi(self) 

       QtCore.QObject.connect(self.ui.btnStartReset, QtCore.SIGNAL('clicked()'), self.doStartReset) 

     def doStartReset(self): 



if __name__ == "__main__": 
     #This function means this was run directly, not called from another python file. 
     app = QtGui.QApplication(sys.argv) 
     myapp = MyForm() 
     myapp.show() 
     sys.exit(app.exec_()) 

다음은 필요한 경우 _ui.py 형식의 GUI 코드입니다.

-- coding: utf-8 --

from PyQt4 import QtCore, QtGui

try: _fromUtf8 = QtCore.QString.fromUtf8 except AttributeError: _fromUtf8 = lambda s: s

class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(340, 205) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.widget = QtGui.QWidget(self.centralwidget) self.widget.setGeometry(QtCore.QRect(40, 50, 261, 81)) self.widget.setObjectName(_fromUtf8("widget")) self.gridLayout = QtGui.QGridLayout(self.widget) self.gridLayout.setMargin(0) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) self.btnStartReset = QtGui.QPushButton(self.widget) self.btnStartReset.setObjectName(_fromUtf8("btnStartReset")) self.gridLayout.addWidget(self.btnStartReset, 0, 0, 1, 1) self.lcd40MinTimer = QtGui.QLCDNumber(self.widget) self.lcd40MinTimer.setObjectName(_fromUtf8("lcd40MinTimer")) self.gridLayout.addWidget(self.lcd40MinTimer, 0, 1, 1, 1) MainWindow.setCentralWidget(self.centralwidget)

self.retranslateUi(MainWindow) 
    QtCore.QMetaObject.connectSlotsByName(MainWindow) 

def retranslateUi(self, MainWindow): 
    MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", 

"MainWindow", None, QtGui.QApplication.UnicodeUTF8)) self.btnStartReset.setText(QtGui.QApplication.translate("MainWindow", "Start/Reset", None, QtGui.QApplication.UnicodeUTF8))

감사합니다.

안녕 얘들 아 .. 여기에 내가 진전이 있습니다. 슬픈, 저에게이 일을 3 일 내내 가져 갔지만, 이봐, 아무도 덜 진행되지 않습니다! 이제 hh : mm : ss로 형식을 설정하고 버튼 기능에 시작, 중지 및 재설정이 포함되도록 할 것입니다 ... 아마도 일부 사용자에게 도움이 될 수 있으며 누군가가 나를 도울 수 있습니다! 함께 나는 우리가 그것을 가능하게 할 수 있다고 확신합니다! 건배!!!

!/usr/bin/python

-- coding: utf-8 --

import sys from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

def __init__(self): 
    super(Example, self).__init__() 

    self.initUI() 

def initUI(self): 

    self.lcd = QtGui.QLCDNumber(self) 
    self.lcd.setGeometry(30, 40, 200, 25) 

    self.btn = QtGui.QPushButton('Start', self) 
    self.btn.move(40, 80) 
    self.btn.clicked.connect(self.doAction) 

    self.timer = QtCore.QBasicTimer() 
    self.step = 0 

    self.setGeometry(300, 300, 280, 170) 
    self.setWindowTitle('QtGui.QLCDNumber') 
    self.show() 

def timerEvent(self, e): 

    if self.step >= 100: 
     self.timer.stop() 
     self.btn.setText('Finished') 
     return 

    self.step = self.step + 1 
    self.lcd.display(self.step) 

def doAction(self): 

    if self.timer.isActive(): 
     self.timer.stop() 
     self.btn.setText('Start') 
    else: 
     self.timer.start(100, self) 
     self.btn.setText('Stop') 

def main():

app = QtGui.QApplication(sys.argv) 
ex = Example() 
sys.exit(app.exec_()) 

if name == 'main': main()

+0

안녕 얘들 아,이에 떨어져 일하고 및에 ... 얼마나 슬픈이 잘 오, 여전히 진행 .. 진보 그냥이 조금을 만들기 위해 나에게 삼일했다! :) 이제 hh : mm : ss 형식을 변경하고 중지, 시작 및 재설정을 포함하도록 단추 기능을 변경하려고합니다. 희망이 도움이, 아마도 함께 우리가 알아낼 수 있습니다! – xopenex

답변