0

使用 Qt 设计器和 python2.7。我正在尝试用 Qt Designer 按钮和 LCD 编号创建一个“计数”计时器。我想要一个按钮来启动和重置计时器和 LCD 数字以显示以 hh:mm:ss 格式过去的时间量。我还试图在 40 分钟时“弹出”一个窗口,并显示一条消息“干得好!”

我已经搜索了答案,尝试了许多不同的谷歌搜索组合......现在我所有的结果都显示为紫色(我已经点击了链接)!大声笑我看到了许多其他语言和倒数计时器的示例,以及计时器和语言的任何其他和所有其他组合......但没有一个用于 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))

先感谢您。


嘿伙计们..这是我取得的一些进展......很遗憾我花了三天时间才完成这么多,但是嘿,这仍然是进步!现在我将着手将格式设置为 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 回答