我正在阅读以下教程:
示例显示单击按钮时状态栏正在更新,但是,我想知道是否可以将其作为通用函数(例如)进行更新。例如,我可以创建一个通过string
的函数,每当我调用此函数时,statusBar都会更改为解析的文本。我假设您必须使用connect
,但我尝试了以下内容:
#in main have:
self.connect(showMessage)
def updateStatusBar():
sender = self.sender()
self.statusBar().showMessage(sender.text() + 'Here');
然而,这不起作用。有人可以告诉我一个替代方法吗?
答案 0 :(得分:2)
尝试抓住要触发操作的对象发出的信号。这是一个最小的例子(每当QLineEdit中的文本发生变化时更新状态栏)。我希望它能满足您的需求。
import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.statusBar = QStatusBar()
self.setStatusBar(self.statusBar)
self.statusBar.showMessage('...')
self.lineEdit = QLineEdit()
self.setCentralWidget(self.lineEdit)
self.lineEdit.textEdited.connect(self.updateStatusBar)
def updateStatusBar(self, string):
self.statusBar.showMessage(string)
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = MainWindow()
main_window.show()
sys.exit(app.exec_())
有关为每个班级预定义哪些信号的信息,请参阅文档,例如http://qt-project.org/doc/qt-5.0/qtwidgets/qlineedit.html#signals