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