[英]PyQt4 Gui that prints loop
我正在尝试学习PyQt4,并为此目的制作了以下Gui-它没有其他用途。
该代码几乎可以按预期工作-唯一没有的是'else'子句。
import sys
import time
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Form(QDialog):
def __init__ (self, parent=None):
super(Form, self).__init__(parent)
self.startButton = QPushButton('Start')
self.stopButton = QPushButton('Stop')
self.browser = QTextBrowser()
self.myLabel = QLabel()
layout = QVBoxLayout()
layout.addWidget(self.startButton)
layout.addWidget(self.stopButton)
layout.addWidget(self.browser)
layout.addWidget(self.myLabel)
self.setLayout(layout)
self.startButton.setFocus()
self.startButton.clicked.connect(self.guiLoop)
self.stopButton.clicked.connect(self.guiLoop)
self.setWindowTitle('Loop Gui')
def guiLoop(self):
state = False
text = self.sender()
self.myLabel.setText(text.text())
time.sleep(1)
if text.text() == 'Start':
state = True
else:
state = False
i = 0
while state:
time.sleep(.1)
self.browser.append(str(i))
QApplication.processEvents()
i += 1
else:
self.browser.append('Stop loop')
time.sleep(3)
sys.exit()
app = QApplication(sys.argv)
form = Form()
form.show()
app.exec_()
...我希望程序可以在退出前在浏览器小部件中打印“停止循环”,但不会
else:
self.browser.append('Stop loop')
time.sleep(3)
sys.exit()
我现在有3个问题:
提前Thx
在您的else部分中添加以下行
QApplication.processEvents()
喜欢
while state:
time.sleep(.1)
if i % 10 == 1:
self.browser.append(str(i))
QApplication.processEvents()
i += 1
else:
self.browser.append('Stop loop')
QApplication.processEvents()
time.sleep(3)
sys.exit()
输出就像:1 11 21 31等。和Stop Loop
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.