4

有没有办法为 QDockWidget 中的关闭按钮和浮动按钮设置工具提示文本?

在此处输入图像描述

4

2 回答 2

5

正如 ixSci 提到的,使用setTitleBarWidget()是解决这个问题的一种潜在方法。话虽如此,我正在寻找一个更简单的解决方案,最好使用QSS(Qt Style Sheets)。因此,在深入研究了源代码后,QDockWidget我找到了一种更适合我要求的替代方法。

我想找到这些floatclose按钮的创建位置。那是里面QDockWidgetPrivate::init()的方法QDockWidget.cpp

例如,float按钮是这样创建的:

QAbstractButton *button = new QDockWidgetTitleButton(q);
button->setObjectName(QLatin1String("qt_dockwidget_floatbutton"));
QObject::connect(button, SIGNAL(clicked()), q, SLOT(_q_toggleTopLevel()));
layout->setWidgetForRole(QDockWidgetLayout::FloatButton, button);

现在我只需要使用 Qt 样式表的灵活性,因为我只需要对象名称,在这种情况下它是“ qt_dockwidget_floatbutton

Close因此,为 a 设置工具提示和Float按钮所需要做的QDockWidget就是在应用程序样式表中添加以下两行样式

QAbstractButton#qt_dockwidget_closebutton{qproperty-toolTip: "Close";}
QAbstractButton#qt_dockwidget_floatbutton{qproperty-toolTip: "Restore";}
于 2013-02-27T08:17:31.960 回答
1

您可以实现任何您想要的标题小部件并将其设置为setTitleBarWidget(). 在该小部件中,您可以添加任何带有您需要的工具提示的按钮。

于 2013-02-27T06:28:49.207 回答