
connect(action,&QAction::hovered,[=]{ Qtooltip::showtext(QCursor::pos(),text,this);}); 问题是有时程序会将工具提示定位在菜单下方,特别是在更改菜单时.
有没有办法强制工具提示显示在顶部?
解决方法 您可以继承QMenu并重新实现QMenu :: event()以拦截QEvent :: tooltip事件并调用Qtooltip :: showtext来设置活动 *** 作的工具提示:#include <QtGui>class Menu : public QMenu{ Q_OBJECTpublic: Menu(){} bool event (QEvent * e) { const QHelpEvent *helpEvent = static_cast <QHelpEvent *>(e); if (helpEvent->type() == QEvent::tooltip && activeAction() != 0) { Qtooltip::showtext(helpEvent->globalPos(),activeAction()->tooltip()); } else { Qtooltip::hIDeText(); } return QMenu::event(e); }}; 现在您可以使用自定义菜单,例如:
Menu *menu = new Menu();menu->setTitle("Test menu");menubar()->addMenu(menu);QAction *action1 = menu->addAction("First");action1->settooltip("First action");QAction *action2 = menu->addAction("Second");action2->settooltip("Second action"); 总结 以上是内存溢出为你收集整理的c – QMenu中QActions的QTooltip全部内容,希望文章能够帮你解决c – QMenu中QActions的QTooltip所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)