首页 > 其他分享 >ui设计师界面combobox控件添加鼠标点击信号

ui设计师界面combobox控件添加鼠标点击信号

时间:2023-06-20 23:57:47浏览次数:48  
标签:控件 鼠标 combobox 点击 添加 ui include

一、概述

  combobox下拉框控件下拉后会显示预设好的选择内容,可是想要实现显示内容动态可变,点击的时候实时刷新到最新内容,就需要点击信号,但是qt本身没有实现这个点击信号。要实现这个功能本质方法是需要重写combobox的鼠标点击事件,这里介绍如何为ui设计师界面的combobox控件添加鼠标点击信号。

二、具体方法

  1:首先创建一个自定义的的mycombobox控件类,注意基类要选择QWidget,因为QCombobox的父类为QWidget。

 

 

  2:添加头文件  #include <QComboBox>  ,将继承类修改为QComboBox,重写鼠标事件并添加信号,直接看源代码

mycombobox.h

#ifndef MYCOMBOXBOX_H
#define MYCOMBOXBOX_H

#include <QObject>
#include <QComboBox>

class MyComboxBox : public QComboBox
{
    Q_OBJECT
public:
    explicit MyComboxBox(QWidget *parent = nullptr);


   
    void mousePressEvent(QMouseEvent *event);  //重写鼠标点击事件

signals:
    void clicked();        //添加点击信号

public slots:
};

#endif // MYCOMBOXBOX_H

  

mycombobox.c

#include "mycomboxbox.h"
#include <QComboBox>
#include <QMouseEvent>

MyComboxBox::MyComboxBox(QWidget *parent) : QComboBox(parent)
{

}


void MyComboxBox::mousePressEvent(QMouseEvent *event)
{
    if(event->button() == Qt::LeftButton)    //如果点击左键
    {
       emit clicked();  //发出clicked信号
    }

    QComboBox::mousePressEvent(event);  //将该事件传给父类处理,这句话很重要,如果没有,父类无法处理本来的点击事件

}

  

  3:将ui设计师界面的combobox控件提升为自定义的mycombobox控件。

  ①选中combobox控件,单击右键选择“提升为”,

   ②输入刚刚新建的类的类名,再点击添加

   ③选中上一步添加好的要提升的类,再点击提升

 

这时候就将原始的combobox控件提升为带clicked点击信号的自定义类了,之后在代码中可以调用clicked点击信号。

 

标签:控件,鼠标,combobox,点击,添加,ui,include
From: https://www.cnblogs.com/tgc-3/p/17495179.html

相关文章

  • qt中添加多个UI界面,并在其他文件中调用该UI界面
    一、概述qt创建一个新项目时,会创建一个属于mainwindow'的主ui界面,这时如果想要创建多个窗口,可以有三种方法。第一种:使用代码创建一个新窗口,优点是灵活,缺点是麻烦,其中控件和布局都需要代码来创建。第二种:在ui设计界面使用tabwidget控件来达到多个窗口的效果,不过这种方法只能......
  • Qt编写控件组态属性设计器源码属性设计器产品不包括里面控件的源码
    Qt编写控件组态属性设计器源码属性设计器产品不包括里面控件的源码1.自动加载插件文件中的所有控件生成列表,默认自带的控件超过120个。2.拖曳到画布自动生成对应的控件,所见即所得。3.右侧中文属性栏,改变对应的属性立即应用到对应选中控件,直观简洁,非常适合小白使用。4.独创属性......
  • 基于matlab图像处理 用gui集成多种方法处理图像 增加暗度,边缘锐化,
    基于matlab图像处理用gui集成多种方法处理图像增加暗度,边缘锐化,真彩色增强,伪彩色增强,直方图均衡化,理想低通滤波等等ID:8934598469174023......
  • 条形码识别 matlab条形码识别 基于matlab gui的条形码识别
    条形码识别matlab条形码识别基于matlabgui的条形码识别ID:6831595862178575......
  • Equipment类
    publicclassEquipment{privateIntegerequipmentId;privateStringequipmentName;privateStringequipmentLocation;privateStringequipmentStatus;privateStringequipmentMessage;publicEquipment(){}publicEquipment(Integer......
  • Microsoft Azure study guide
    StudyguideforExamAZ-900:MicrosoftAzureFundamentals|MicrosoftLearn StudyguideforExamAZ-104:MicrosoftAzureAdministrator|MicrosoftLearn  StudyguideforExamAZ-305:DesigningMicrosoftAzureInfrastructureSolutions|MicrosoftLear......
  • uuid 生成算法
    uuid---RFC4122定义的UUID对象—Python3.10.11文档https://docs.python.org/zh-cn/3.10/library/uuid.htmluuid --- RFC4122 定义的UUID对象源代码: Lib/uuid.py这个模块提供了不可变的 UUID 对象(UUID 类)和 uuid1(), uuid3(), uuid4(), uuid5() 等函......
  • Java中的String、StringBuilder和StringBuffer
    StringString为什么不可变?有什么好处?在Java中的String源码中,我们可以看到字符串String类就是char数组的封装,且字符char[]前面的修饰关键字是private和final。final决定了char数组是私有成员变量,不可以指向新的数组。private决定了该数组只能有String类内部访问,所以不可变。好......
  • arduino——串口控制开关灯
    转载自:arduino——串口控制开关灯(笔记)-简书(jianshu.com)串口简介Arduino与计算机通信的最常用方式就是串口通信,当使用USB线将二者连接时,便建立了串口连接,通过串口,arduino可以向计算机发送消息,计算机也可以向arduino发送消息。函数介绍Serial.begin(speed);此函数是初......
  • kafka的学习之二_kafka的压测与GUI管理
    kafka的学习之二_kafka的压测与GUI管理第一部分创建topiccd/root/kafka_2.13-3.5.0bin/kafka-topics.sh--create--bootstrap-server10.110.139.184:9093--command-configconfig/sasl.conf--replication-factor3--partitions3--topiczhaobsh01bin/kafka-topics......