当前位置:网站首页>【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_Hmycombobox.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,然后选中——提升;

边栏推荐
- Trie number dictionary tree
- LM小型可编程控制器软件(基于CoDeSys)笔记二十一:错误3703
- 中科磐云—2022广西逆向解析思路
- 如何构建属于自己的知识引擎?社群开放申请
- Simple g++ and GDB debugging
- 【无标题】
- Zhongke Panyun - module a infrastructure setting and safety reinforcement scoring standard
- [matlab] matlab simulates digital baseband transmission system eye diagram of bipolar baseband signal (class I part response waveform)
- 中科磐云—D模块解析以及评分标准
- Daily question brushing record (12)
猜你喜欢

Zhongke panyun-2022 Guangdong Trojan horse information acquisition and analysis

2022G2电站锅炉司炉特种作业证考试题库及答案

Just do it with your hands 7 - * project construction details 2 - hook configuration

National vocational college skills competition (secondary vocational group) network security competition questions - Analysis

Character types of C language

Trie数-字典树

定制一个自己项目里需要的分页器

A summary of the 8544 problem that SolidWorks Standard cannot obtain a license

How to build your own knowledge engine? Community open application

LabVIEW错误对话框的出现
随机推荐
Trie number dictionary tree
Evolution of system architecture: differences and connections between SOA and microservice architecture
由于使用flash存放参数时,擦除掉了flash的代码区导致进入硬件错误中断
小程序毕业设计---美食、菜谱小程序
Just do it with your hands 7 - * project construction details 2 - hook configuration
Li Kou's 300th weekly match
Fault analysis | mongodb 5.0 reports an error, and the legal instruction solves it
力扣 第 300 场周赛
简单g++和gdb调试
Annex I: power of attorney for 202x XXX attack and defense drill
ping端口神器psping
Simulated small root pile
2022危险化学品经营单位安全管理人员上岗证题库及答案
Useful plug-ins for vscode
2022年A特种设备相关管理(电梯)考试题模拟考试平台操作
2022 t elevator repair operation certificate examination question bank and simulation examination
Notepad++--显示相关的配置
Flutter 调用高德地图APP实现位置搜索、路线规划、逆地理编码
Headache delayed double deletion
关于solidworks standard无法获得许可 8544问题的总结