当前位置:网站首页>【QT】制作MyComboBox点击事件
【QT】制作MyComboBox点击事件
2022-07-04 04:56:00 【米杰的声音】
在QT中的ui界面添加QComboBox控件,需求是实现控件的点击事件,查了资料,发现这个控件类的本身是没有点击信号可以使用的。制作ComboBox点击事件可分为三步:
1、重写ComboBox类;
2、在widget中添加对应启动的信号和槽事件;
3、在ui窗口中将ComboBox控件提升到重写的类里;
mycombobox.h
#ifndef MYCOMBOBOX_H
#define MYCOMBOBOX_H
#include <QComboBox>
#include <QMouseEvent>
class MyComboBox : public QComboBox
{
Q_OBJECT//只有加入Q_OBJECT,才能使用信号signal和槽slot的机制
public:
explicit MyComboBox(QWidget *parent = 0);
~MyComboBox();
protected:
virtual void mousePressEvent(QMouseEvent *e);//添加鼠标点击事件
signals:
void clicked();//自定义点击信号,在mousePressEvent事件发生时触发
};
#endif // MYCOMBOBOX_H
mycombobox.c
#include "mycombobox.h"
MyComboBox::MyComboBox(QWidget *parent) : QComboBox(parent)
{
}
MyComboBox::~MyComboBox()
{
}
//重写mousePressEvent事件,检测事件类型是不是点击了鼠标左键
void MyComboBox::mousePressEvent(QMouseEvent *e)
{
if (e->button() == Qt::LeftButton)
{
emit clicked(); //触发clicked信号
}
QComboBox::mousePressEvent(e); //将该事件传给父类处理,这句话很重要,如果没有,父类无法处理本来的点击事件
}
mainwindow.h
public slots:
void ComboBoxClicked();//添加槽函数
mainwindow.c
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//添加链接,当点击发送到ComboBoxClicked()
connect(ui->cbb_pztWorkModel, SIGNAL(clicked()), this, SLOT(ComboBoxClicked()));
}
void MainWindow::ComboBoxClicked() {
ui->statusbar->showMessage("请输入正确的偶数个Hex字符(Hex字符仅包含0~9、A~F、空格)", 2000);
}
关于lineEdit控件的提升步骤为,点击进入窗口ui设计界面——选中ComboBox控件——右键——提升为——在提升类名称里添加刚刚重写的类MyComboBox,然后选中——提升;
边栏推荐
- COMP1721 Creating Classes
- When using flash to store parameters, the code area of flash is erased, which leads to the interrupt of entering hardware error
- 【QT】定时器
- Several smart watch related chips Bluetooth chip low power consumption
- Error response from daemon: You cannot remove a running container 8d6f0d2850250627cd6c2acb2497002fc3
- With the advent of the IP era, how can E-sports hotels take advantage of the "east wind" of games?
- 记几个智能手表相关芯片 蓝牙芯片 低功耗
- Just do it with your hands 7 - * project construction details 2 - hook configuration
- 【无标题】
- Yyds dry goods inventory TCP & UDP
猜你喜欢
2022 Guangdong provincial competition - code information acquisition and analysis flag
Zhongke Panyun - module a infrastructure setting and safety reinforcement scoring standard
【QT】定时器
中科磐云—2022广东木马信息获取解析
【兴趣阅读】Adversarial Filtering Modeling on Long-term User Behavior Sequences for Click-Through Rate Pre
Just do it with your hands 7 - * project construction details 2 - hook configuration
ping端口神器psping
A summary of the 8544 problem that SolidWorks Standard cannot obtain a license
中职组网络安全—内存取证
Flutter calls Gaode map app to realize location search, route planning and reverse geocoding
随机推荐
Zhongke panyun-2022 Guangdong Trojan horse information acquisition and analysis
ETCD数据库源码分析——初始化总览
记几个智能手表相关芯片 蓝牙芯片 低功耗
Annex III: scoring standard of the defender docx
RSA加密应用常见缺陷的原理与实践
appliedzkp的zkevm(12)State Proof
NTFS security permissions
【MATLAB】通信信号调制通用函数 — 插值函数
如何构建属于自己的知识引擎?社群开放申请
KMP匹配字符串
[untitled]
Annex I: power of attorney for 202x XXX attack and defense drill
2022危险化学品经营单位安全管理人员上岗证题库及答案
关于solidworks standard无法获得许可 8544问题的总结
加密和解密
空洞卷积、可变形卷积、可变形ROI Pooling
Several smart watch related chips Bluetooth chip low power consumption
How to build your own knowledge engine? Community open application
flink1.13 sql基础语法(一)DDL、DML
Network equipment emergency response Guide