我有一个 Qt 表单,其中有一个按钮和菜单。由于各种原因,我可以禁用某些元素,例如菜单中的按钮或某些操作。
有没有一种方法可以显示工具提示,或者当鼠标悬停在禁用的按钮或菜单项上时,并解释为什么它被禁用?
我正在使用 Qt 4.8。
谢谢!
您可以根据状态动态设置工具提示,QWidget
也可以同时切换两者。在从某处禁用/启用小部件时,只需调用QWidget::setToolTip(...)
您QString
希望在将鼠标悬停在给定小部件上时显示工具提示。例如,如果您有一个名为的公共插槽toggleButton(bool toggleFlag)
,它可以切换按钮的启用设置,您可以执行以下操作:
void MyWidget::toggleButton(bool toggleFlag) {
this->ui->myButton->setEnabled(toggleFlag);
this->ui->myButton->setToolTip(toggleFlag ? QString("Enabled wohoo!") : QString("Disabled because I like it"));
}
当然,您也可以通过调用QWidget::isEnabled()
并根据其返回值采取行动来更改工具提示。由于您没有提供任何代码,我只能假设您如何切换按钮,所以这就是我现在可以给您的全部内容。
更新:评论中指出,由于未接收鼠标事件,工具提示不适用于禁用的小部件。两种说法都不正确(请注意,我使用了相同的工具提示消息,因为由于缺少最小的工作示例,我不想从头开始编写一个全新的项目,而是使用了我现有的一个):