1. 程式人生 > >QT重寫控制元件函式並新增滑鼠單擊事件

QT重寫控制元件函式並新增滑鼠單擊事件

重寫QComboBox類

1.在工程中新建一個C++類,命名為myboBox,base的地方填寫QComboBox,緊接著勾選#include QWidget。

2.myboBox檔案中包含標頭檔案#include <QComboBox>嗎,並新增Q_OBJECT巨集,並改建構函式為myboBox(QWidget*parent=0);

3.在實現檔案的中把建構函式改為以下形式myboBox::myboBox(QWidget*parent):QComboBox(parent)

假如MainWindow中有一個ComboBox控制元件,同時也有一個mousePressEvent事件,會發現單擊控制元件沒有啟用事件,因為事件是MainWindow的事件,要實現QComboBox的單擊事件,則要按照上述步驟在myboBox.h中重寫mousePressEvent事件,並在mainwindows中應用此類才能生效。

1.myboBox.h中新增void mousePressEvent(QMouseEvent *event)事件

2myboBox.h中新增訊號void clicked(bool)。

3.在實現檔案中重寫mousePressEvent事件

voidmyboBox::mousePressEvent(QMouseEvent*event)
{
emitclicked(true);
}