需要當鼠標(與按鈕)在標籤頂部,它被激活。 這怎麼可能。鼠標按下事件和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