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