pyQt:如何更新标签?

时间:2016-04-13 18:35:05

标签: python python-3.x pyqt5 qt-designer qtwidgets

我用qtDesigner创建了这个简单的UI,我想用函数的值每10秒更新一次我的标签,但是我不知道怎么做。我尝试了不同的东西,但没有任何效果。

<nav class="ink-navigation"> 
   <ul class="menu black">
     <li>
       <ul class="submenu">
         <li>
           <a href="#" title="" style="color:green">This is a text</a>
        </li>
       </ul>
     </li>
   </ul>
</nav>

UI:

def example():
    ...
    return text

1 个答案:

答案 0 :(得分:8)

理想情况下,您将创建QWidget的子类(而不是像使用Form那样简单地实例化它)。但是这里有一种方法可以做到最小的变化。

您有一个能够更新标签的功能。然后使用QTimer定期触发它(在这种情况下,每10秒)。

import datetime

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()

    def update_label():
        current_time = str(datetime.datetime.now().time())
        ui.label.setText(current_time)

    timer = QtCore.QTimer()
    timer.timeout.connect(update_label)
    timer.start(10000)  # every 10,000 milliseconds

    sys.exit(app.exec_())