当前位置: 首页 > news >正文

自定义控件封装

实现:spinBox和HorizontalSlider的同步,即左边数字增加,右边自动右移,或者右边右移左边数字自动增加

1.添加新文件

这样就会得到.cpp,.h,.ui的文件

2.ui中设计控件

2.1在SmallWidget.ui中添加QSpinBox和QSlider两个控件

先分别将这两个控件拖拽到smallWidget.ui界面中,再对这两个控件进行水平布局

2.2在widget中使用自定义控件

2.2.1在widget.ui界面中增加一个widget控件

这时运行我们发现弹出的窗口什么都没有。

2.2.2将smallWidget提升到widget中

点击“提升为”-点击“添加”-点击“提升”

这里选择全局包含可以方便后续添加的控件的提升

例如:再增加一个widget可以直接提升为SmallWidget

现在运行就可以看到在smallWidget.ui界面的内容了

3.实现功能

改变数字,滑动条跟着移动,信号槽监听

代码:

    void(QSpinBox::*spSignal)(int)=&QSpinBox::valueChanged;
    connect(ui->spinBox,&QSpinBox::valueChanged,ui->horizontalSlider,&QSlider::setValue);

实现了右边变化左边移动,但是左边移动右边没有变化,这时需要再增加一个连接

代码:

connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);

4.提供对外接口

增加两个按钮

修改按钮的objectName

4.1两个接口

smallwidget.h代码:

    //设置数字
    void setNum(int num);
    //获取数字
    int getNum();

smallwidget.cpp代码:

//设置数字
void SmallWidget::setNum(int num)
{
    ui->spinBox->setValue(num);
}
//获取数字
int SmallWidget::getNum()
{
    return ui->spinBox->value();
}

4.2实现

widget.cpp获取:

    connect(ui->btn_get,&QPushButton::clicked,[=](){
        qDebug()<<ui->widget->getNum();
    });

设置:

    connect(ui->btn_set,&QPushButton::clicked,[=](){
        ui->widget->setNum(50);
    });

http://www.dtcms.com/a/122580.html

相关文章:

  • 【QT】QT编译链接 msql 数据库
  • vue用D3.js实现轮盘抽奖
  • AC 自动机 洛谷P3808 P3796 P5357
  • 深度学习篇---LSTMFFTGCT
  • CSV文件读取文件表头字符串含ZWNBSP(零宽度空白字符)
  • Python第八章02:数据可视化Pyecharts包无法使用
  • 【scikit-learn基础】--『预处理』之 数据缩放
  • telophoto源码查看记录 二
  • jmeter插件安装
  • 蓝桥杯备考
  • 【问题排查】SQLite安装失败
  • 五、Linux的使用和操作(2)
  • clickhouse注入手法总结
  • 13.支持 RESTful
  • 请你说一说测试用例的边界
  • Redis的used_memory_peak_perc和used_memory_dataset_perc超过90%会怎么样
  • zsh: command not found: hdc - 鸿蒙 HarmonyOS Next
  • aws平台练习
  • 【VUE3】Eslint 与 Prettier 的配置
  • 使用Java操作Neo4j数据库
  • Kotlin 学习--数组
  • 【大模型微调】如何解决llamaFactory微调效果与vllm部署效果不一致如何解决
  • 深入了解提示工程:通往AI高效协作的桥梁
  • Redis和数据库一致性问题
  • 微前端架构深度解析
  • 华为海思IC前端中后端(COTXPU)岗位笔试机考题
  • 深入理解 rsync daemon 模式(守护进程)
  • 【简单理解什么是简单工厂、工厂方法与抽象工厂模式】
  • 【“星睿O6”AI PC开发套件评测】在O6开发板使用gemma-2b测试CPU性能
  • 测试用例 [软件测试 基础]