PySide6调用setStatusTip()显示QAction名称而非设置提示文本问题求助
PySide6 QAction状态提示显示异常解决方案
问题原因
QMainWindow的状态栏默认不会自动创建,只有主动调用statusBar()方法才会生成可用的状态栏实例,你当前代码未初始化状态栏,所以悬停QAction时会 fallback 显示QAction名称,而非你设置的状态提示。
修复方案
在MainWindow的初始化方法中新增一行调用self.statusBar()的代码即可,修改后完整代码如下:
import sys from PySide6.QtWidgets import QMainWindow, QLabel, QToolBar, QAction, QApplication from PySide6.QtCore import Qt class MainWindow(QMainWindow): def __init__(self): super().__init__() self.setWindowTitle("Test App") # 初始化状态栏,必须调用才会生成状态栏组件 self.statusBar() label = QLabel("Hello!") label.setAlignment(Qt.AlignCenter) self.setCentralWidget(label) toolbar = QToolBar("My main toolbar") self.addToolBar(toolbar) button_action = QAction("Test", self) button_action.setShortcut('Ctrl+T') button_action.setStatusTip('Test application') button_action.triggered.connect(self.onMyToolBarButtonClick) toolbar.addAction(button_action) def onMyToolBarButtonClick(self, s): print("click", s) if __name__ == '__main__': app = QApplication(sys.argv) window = MainWindow() window.show() app.exec()
调用self.statusBar()后可以拿到状态栏实例,你也可以基于该实例自定义状态栏的显示样式、添加额外控件等。
内容的提问来源于stack exchange,提问作者Filippo Boido
相关产品推荐
相关产品推荐

