首页 文章

带有Qt设计按钮和LCD编号的Python计时器

提问于
浏览
0

使用Qt Designer和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代码 .

  • 编码:utf-8 - 来自PyQt4导入QtCore,QtGui尝试:_fromUtf8 = QtCore.QString.fromUtf8除了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(主窗口)

def retranslateUi(self,MainWindow):
MainWindow.setWindowTitle(QtGui.QApplication.translate( “主窗口”,
“MainWindow”,无,QtGui.QApplication.UnicodeUTF8))self.btnStartReset.setText(QtGui.QApplication.translate(“MainWindow”,“Start / Reset”,None,QtGui.QApplication.UnicodeUTF8))

先感谢您 .

嘿伙计......这是我已经取得的一些进展......很遗憾,我花了三天时间来完成这一切,但是,嘿,这是进步的一点点!现在我要设置格式为hh:mm:ss并且按钮功能包括启动,停止和重置......也许这会帮助一些人,也许有人可以帮助我!我相信我们能够实现它!干杯!!!

!/ usr / bin / python - 编码:utf-8 - 从PyQt4导入sys导入QtGui,QtCore类示例(QtGui.QWidget):def __init (self):
super(例如,self).
init __()

self.initUI()

def initUI(self):

self.lcd = QtGui.QLCDNumber(个体经营)
self.lcd.setGeometry(30,40,200,25)

self.btn = QtGui.QPushButton('开始',自我)
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):

如果self.step> = 100:
self.timer.stop()
self.btn.setText( '完成')
返回

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

def doAction(self):

if self.timer.isActive():
self.timer.stop()
self.btn.setText( '开始')
其他:
self.timer.start(100,self)
self.btn.setText( '停止')
def main():app = QtGui.QApplication(sys.argv)
ex =示例()
sys.exit(app.exec_())
如果name =='main':main()

1 回答

相关问题