(pyqt5)如何在不按任何按钮的情况下打印功能结果?

时间:2018-12-19 23:21:22

标签: python pyqt5

我正在学习pyqt5。我想将循环函数的结果打印到QTextBrowser。例如,每秒打印一次“ hello world”。但是我不想按下任何按钮。我想在运行此脚本时自动打印“ hello world”。我尝试了以下代码:

class Ui_Dialog(QtWidgets.QWidget):
    _signal=QtCore.pyqtSignal(str)

    def __init__(self):
        super(Ui_Dialog,self).__init__()
        self.setupUi(self)
        self._signal.connect(self.print_out)

             .....................
             .....................

    def emit_(self):
        self._signal.emit("Hello world!")

    def print_out(self, string):
        print (string)
        self.textBrowser.append(string)

def call(): 
    while True:   
        emit_()
        time.sleep(1)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    myWin = Ui_Dialog()
    myWin.show()
    call()
    sys.exit(app.exec_())

但是,它不起作用。在终端中,我可以看到打印结果,但是此结果无法在textBrowser中打印。 textBrowser始终为空。

1 个答案:

答案 0 :(得分:1)

  

QTimer类提供重复和单次计时器。

     

QTimer类为计时器提供了高级编程接口。要使用它,请创建一个QTimer,将其timeout()信号连接到适当的插槽,然后调用start()。从那时起,它将以固定的时间间隔发出timeout()信号。

'

enter image description here