我有一个Qt表单,我有一个按钮和菜单。由于各种原因,我可以禁用某些元素,例如菜单中的按钮或某些操作。
有没有办法可以显示工具提示,或者鼠标悬停在禁用按钮或菜单项上,并解释为什么禁用它?
我正在使用Qt 4.8。
谢谢!
答案 0 :(得分:1)
您可以根据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()
来更改工具提示,并根据其返回值进行操作。由于您没有给出任何代码,我只能假设您切换按钮的方式,以便我现在能够为您提供所有代码。
更新:评论中指出,由于未接收鼠标事件,工具提示无法使用已禁用的小部件。这两个陈述都不正确(请注意,我使用了相同的工具提示消息,因为由于缺少最小的工作示例,我不想从头开始编写一个全新的项目,而是使用现有的一个项目):