1 自定义控件
1.1 smallWidget 添加文件:设计师界面类
1.2 提升为自定义控件的类名之后便可以使用
1.3 信号和槽
1.3.1 valueChanged
1.3.2 setValue
1.4 自定义空间中组件之间的值通过信号和槽进行交互:
//QSpinBox移动 Slider跟着移动 void(QSpinBox:: * signal)(int) = &QSpinBox::valueChanged; connect(ui->spinBox,signal,ui->horizontalSlider,&QSlider::setValue); //Slider移动 SpinBox跟着移动 connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
1.5 自定义组件提供对外的接口来实现一些方法:
1.5.1自定义控件的.h文件中定义对外的方法接口:
void setValue(int v); int getValue();
1.5.2自定义控件的.cpp文件中接口方法的实现:
void SmallWidget::setValue(int v) { ui->spinBox->setValue(v); } int SmallWidget::getValue() { return ui->spinBox->value(); }
1.5.3在其他窗口中使用自定义控件的接口:
//点击设置 到一半的位置 connect(ui->btnSet,&QPushButton::clicked,[=](){
//widget为自定义控件提升之后的名称 ui->widget->setValue(50); }); //点击获取,拿到当前值 connect(ui->btnGet,&QPushButton::clicked,[=](){ qDebug () << "当前值为:" << ui->widget->getValue(); });
2 事件
2.1 鼠标进入 (参数要加入)
2.2 鼠标离开
2.3 鼠标按下
2.3.1 位置信息 ev->x() ev->y()
2.3.2 判断按键 ev->button() Qt::LeftButton
2.4 鼠标释放
2.5 鼠标移动
2.5.1 判断按键 ev->buttons() & Qt::LeftBtton
2.6鼠标事件的使用:
2.6.1自定义控件类,继承的类为Qwidget,之后去.h的头文件和.cpp的文件去修改继承的基类。
.h文件:
#include <QLabel> class MyLabel : public QLabel
.cpp文件
3 定时器
3.1 timerEvent
3.2 启动 startTimer
3.3 timerId
3.4 第二种 QTimer
3.5 启动 start
3.6 timeout 信号
3.7 stop 暂停
4 event
4.1 作用 事件的分发
4.2 返回值 bool
4.2.1 作用 true 用户自己处理 ,不向下分发
5 事件过滤器 上层拦截
5.1 安装事件过滤器
5.2 重写eventfilter