0

Qt Designer と python2.7 を使用します。Qt Designer ボタンと LCD 番号から「カウントアップ」タイマーを作成しようとしています。1 つのボタンでタイマーを開始およびリセットし、LCD 番号で経過時間を hh:mm:ss 形式で表示したいと考えています。また、40 分でウィンドウを「ポップアップ」させ、「よくできました!」というメッセージを表示しようとしています。

私は答えを検索し、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))

前もって感謝します。


Hey Guys.. ここに私が成し遂げたいくつかの進歩があります... これを達成するのに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()
4

1 に答える 1

1

xopenex、しばらく前に Qt を使用して Python でカウントアップ タイマーをコーディングしました。これはあなたが探していたものでしょうか?

https://github.com/twigmac/count-up-timer

于 2013-09-11T19:37:12.803 に答える