You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:09:03