2012-03-08 12 views
0

Qt Designerとpython2.7を使用しています。 Qt DesignerのボタンとLCD番号から「カウントアップ」タイマーを作成しようとしています。タイマーとLCD番号を開始してリセットし、hh:mm:ss形式で経過した時間を表示するようにしたいと思います。また、40分後に「ポップアップ」ウィンドウを表示しようとしています。「Good Job You Made It!」というメッセージが表示されます。QtデザインボタンとLCD番号付きのPythonタイマー

私は答えを探して、Google検索のさまざまな組み合わせを試してみました...そして今、すべての結果が紫色に表示されています(私はすでにリンクをたどっています)! LOL私は、他の言語や、カウントダウンタイマー、タイマーや言語の他の組み合わせなど、多くの例を見ていますが、どれもPythonではありません!真剣に、私は数日間このことを理解しようとしていて、それだけでどこにもいない。

以下は私が持っているコードです。私は必要な部分は、 "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

こんにちはGuysは、このオフに取り組んで上...どのように悲しいされ、これは進歩のちょうどこの少しを作るために3日かかった...まあ、まだ進行します! :)今は、hh:mm:ssという形式を変更し、ボタンの機能を停止、開始、リセットを含むように変更する作業をします。これが助けてくれることを願っています。おそらく一緒に考え出すことができます! – xopenex

答えて

関連する問題