QT重写控件函数并添加鼠标单击事件

来源:互联网 发布:网络故障诊断1一1 编辑:程序博客网 时间:2024/05/21 19:44

重写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事件

void myboBox::mousePressEvent(QMouseEvent *event)
{
    emit clicked(true);
}