如何停止单击按钮打印数字

How can I stop printing numbers clicking on a pushbutton

我想在 pyqt4 的 GUI 中开始打印数字,但是当我按下开始按钮时它冻结了,我必须关闭 de window,我想启动 psocess 单击一个按钮并停止另一个按钮,在这里我让我的代码

这是我尝试启动和停止进程的部分

class LecturaFrecuencia(QMainWindow):
    """docstring for LecturaFrecuencia"""
    def __init__(self, parent):
        super(LecturaFrecuencia, self).__init__(parent)
        uic.loadUi('frecuencia.ui', self)
        global START
        self.button_volver.clicked.connect(self.regresar)
        self.button_terminar.clicked.connect(self.terminar_monitoreo)
        self.button_guardar.clicked.connect(self.guardar)
        self.button_iniciar.clicked.connect(self.iniciarLectura)

    def iniciarLectura(self):
        START = 1
        while START :
            pqrst= random.randint(55,101)
            time.sleep(1.0)
            print(str(pqrst))
            self.pqrst.setText(str(pqrst))
            if self.button_terminar.isChecked():
                START = 0
            else:
                pass

切勿在 GUI 线程中使用 time.sleep(),因为它会冻结它。如果您想执行周期性任务,请使用 QTimer:

import random
from PyQt4 import QtCore, QtGui, uic

class LecturaFrecuencia(QtGui.QMainWindow):
    """docstring for LecturaFrecuencia"""
    def __init__(self, parent=None):
        super(LecturaFrecuencia, self).__init__(parent)
        uic.loadUi('frecuencia.ui', self)

        timer = QtCore.QTimer(
            self,
            interval=1000,
            timeout=self.processing
        )

        self.button_iniciar.clicked.connect(timer.start)
        self.button_terminar.clicked.connect(timer.stop)

    @QtCore.pyqtSlot()
    def processing(self):
        pqrst = random.randint(55,101)
        self.pqrst.setText("{}".format(pqrst))

if __name__ == '__main__':
    import sys 
    app = QtGui.QApplication(sys.argv)
    w = LecturaFrecuencia()
    w.show()
    sys.exit(app.exec_())