首页| 论坛| 消息

标题:大佬们,鼠标经过控件,如何自动在状态栏显示提示字符?
作者:lanmanck
日期:2020-05-27 09:24
内容:

比如界面有2个控件,pushbutton,radiobutton,下面有个状态栏,我鼠标移到这2个控件上,下面状态栏就自动出现提示字符,例如“这个pushbutton是关机的”,“这个radiobutton选择”性别。
用代码判断鼠标位于哪个控件内部倒是可以解决,但是有没有他内部就支持的方法?类似于mdi菜单那种自动帮助提示?
多谢。


#1 [青空飞羽 05-27 10:06]
statusTip : QString
This property holds the widget's status tip
By default, this property contains an empty string.
Access functions:
QString
statusTip() const
void
setStatusTip(const QString &)
#2 [fearlazy 05-27 10:07]
目测没有
#3 回 青空飞羽 的帖子 [lanmanck 05-27 10:41]
青空飞羽:statusTip : QString
This property holds the widget's status tip
By default, this property contains an empty string.
Access functions:
....... (2020-05-27 10:06)
牛逼啊,setStatusTip()在mainwindow好使,那么如何在别的dialog也有个statusbar并可用呢?
#4 回 lanmanck 的帖子 [lanmanck 05-27 10:52]
lanmanck:牛逼啊,setStatusTip()在mainwindow好使,那么如何在别的dialog也有个statusbar并可用呢?
 (2020-05-27 10:41) 
发现多加一个mainwindow可以。。。。
能不能弹一个dialog出来,然后dialog里面控件的提示还是用背后的mainwindow的statusbar来做呢?
#5 回 lanmanck 的帖子 [青空飞羽 05-27 11:08]
lanmanck:牛逼啊,setStatusTip()在mainwindow好使,那么如何在别的dialog也有个statusbar并可用呢?
 (2020-05-27 10:41) 
dialog里只能自己实现了
1. 先new 一个QStatusBar *m_statusBar放入对话框的布局内
2. 然后需要重写Dialog界面类的事件过滤函数eventFilter。
bool Dialog::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::HoverEnter) {
QWidget *pWidget = qobject_cast(obj);
if (pWidget)
{
m_statusBar->showMessage(pWidget->statusTip());
}
}
else if (event->type() == QEvent::HoverLeave) {
m_statusBar->showMessage("");
}
return QDialog::eventFilter(obj, event);
}
3. 对控件安装事件过滤器
ui->pushButton_1->installEventFilter(this);
ui->pushButton_2->installEventFilter(this);

<< 1 2 >> (1/2)

回复 发表
主题 版块