需要当鼠标(与按钮)在标签顶部,它被激活。 这怎么可能。鼠标按下事件和qtabwidget
-1
A
回答
0
您可以拦截QTabBar中的mouseMoveEvent事件。
编辑:如何
要拦截它的Qt你提供了一个很好的功能。您可以在您创建的窗口小部件上安装事件过滤器,以便能够获取其子窗口小部件的过滤事件。请参阅关于installEventFilter函数的文档。
0
只需创建您自己的EventFilter。
// TabBarEventHandler
class TabBarEventHandler : public QObject
{
public:
explicit TabBarEventHandler(QTabWidget * tabWidget);
virtual ~TabBarEventHandler();
void Initialize();
protected:
QTabWidget * mTabWidget;
virtual bool eventFilter(QObject* obj, QEvent* event) override;
};
// TabBarEventHandler
TabBarEventHandler::TabBarEventHandler(TabBar * tabWidget)
: mTabWidget(tabWidget)
{
}
TabBarEventHandler::~TabBarEventHandler()
{
mTabWidget->tabBar()->removeEventFilter(this);
}
void TabBarEventHandler::Initialize()
{
mTabWidget->tabBar()->installEventFilter(this);
}
bool TabBarEventHandler::eventFilter(QObject* obj, QEvent* event)
{
qDebug() << event->type();
return QObject::eventFilter(obj, event);
}
void TabBarEventHandler::timerEvent(QTimerEvent* event)
{
}
而在你的小工具:
MyTabWidget::MyTabWidget(QWidget * parent) : QTabWidget(parent)
{
mEventHandler = new TabBarEventHandler(this);
mEventHandler->Initialize();
}
MyTabWidget::~MyTabWidget()
{
delete mEventHandler;
}
调试输出:
的QEvent ::类型(HoverMove)的QEvent ::类型(HoverMove) 的QEvent ::类型(MouseButtonPress )QEvent的::类型(InputMethodQuery) QEvent的::类型(InputMethodQuery)QEvent的::类型(InputMethodQuery) QEvent的::类型(描绘)的QEvent ::类型(描绘) QEvent的::Ť YPE(MouseButtonRelease)的QEvent ::类型(HoverMove) 的QEvent ::类型(HoverMove)的QEvent ::类型(假期)
相关问题
- 1. 用于QTabWidget的PyQt鼠标事件
- 2. 如何在Linux中读取鼠标和鼠标按下事件?
- 3. 在SVG鼠标按下时停止鼠标向下的事件
- 4. 鼠标向下,鼠标移动和鼠标事件的图像?
- 5. vb.net鼠标按钮事件和标签
- 6. jQuery的:用鼠标按下事件
- 7. 鼠标按下事件时机
- 8. 全局钩子鼠标按下和按键事件不触发
- 9. NotifyIcon.BalloonTipClicked事件和鼠标按钮
- 10. C#按住鼠标事件
- 11. 区分鼠标按下和鼠标按下
- 12. 捕获鼠标按下事件,并得到clientX和clientY在Mozilla
- 13. 如何在Java中按下鼠标按钮时收听鼠标移动事件
- 14. 如何检测鼠标仍下跌后鼠标按下事件角2/4
- 15. 鼠标输入/鼠标离开和鼠标左键按下
- 16. 按下按钮时移动鼠标会引发什么事件?
- 17. 拖放和鼠标事件
- 18. 布局和鼠标事件
- 19. 鼠标事件和FPS
- 20. HTML5 SVG和鼠标事件
- 21. Perl6:NCurses和鼠标事件
- 22. 如何区分鼠标按下事件中的滚轮按钮单击事件?
- 23. 鼠标事件和动作事件
- 24. Qt:即使按下了按钮,也能获得鼠标按下的事件
- 25. 确保我获得每个鼠标按下时的鼠标移动事件
- 26. 在条件下收听鼠标事件
- 27. 鼠标事件
- 28. jQuery的鼠标按下+鼠标离开
- 29. 鼠标按钮的事件/ WPF
- 30. JavaFX按钮使鼠标事件消失
考虑到我是比较温和的。我怎么可以这样做。我应该创建一个qtabbar的子类,如网络上的droparea示例。建议。感谢您分享到目前为止。 – nish 2011-04-20 10:45:36
您可以继承QTabBar,但Qt提供了其他更简单的解决方案来获取子部件的事件:请参阅我的更新的答案 – 2011-04-20 12:35:08