• Qt 自定义控件


     学过的东西很久不用都已经忘记了,即使是很简单的事情

    1、添加一个Qt 设计师界面类

     

     如何将这个放到比较好看并且是居中的呢?

    布局--》水平-》竖直 

    点击大的widget 不是这两个控件

     

     2、在主窗口中添加一个widget 来加载上面我们已经拿到组合控件

     3、将这个widget提升为

     

     之后了我们验证一下这个是不是成功,直接运行程序:

     如果出现这样就说明加载成功这个自定义控件

    4、我们需要让这个自定义控件来实现相互显示;

    1. // 设计 数字改变的时候 滑动块移动到对应的位置
    2. void(QSpinBox:: * singlespinBox)(int)=&QSpinBox::valueChanged;
    3. connect(ui->sBox,singlespinBox,ui->horizontalSlider,&QSlider::setValue);

    测试一下:

     5、获得slider 上面的值

    1. // 数字随着slider 的滑动而改变数值
    2. connect(ui->horizontalSlider,&QSlider::valueChanged,ui->sBox,&QSpinBox::setValue);

    测试一下:

     6、我们需要在主窗口分别设置get 和set 的功能

    在smallwidget 中写两个函数

    1. #ifndef SMALLWIDGET_H
    2. #define SMALLWIDGET_H
    3. #include
    4. namespace Ui {
    5. class smallwidget;
    6. }
    7. class smallwidget : public QWidget
    8. {
    9. Q_OBJECT
    10. public:
    11. explicit smallwidget(QWidget *parent = nullptr);
    12. ~smallwidget();
    13. int getNumber();
    14. void setNUber();
    15. private:
    16. Ui::smallwidget *ui;
    17. };
    18. #endif // SMALLWIDGET_H

     

     代码:

    smallwidget
    1. #include "smallwidget.h"
    2. #include "ui_smallwidget.h"
    3. smallwidget::smallwidget(QWidget *parent) :
    4. QWidget(parent),
    5. ui(new Ui::smallwidget)
    6. {
    7. ui->setupUi(this);
    8. // 设计 数字改变的时候 滑动块移动到对应的位置
    9. void(QSpinBox:: * singlespinBox)(int)=&QSpinBox::valueChanged;
    10. connect(ui->sBox,singlespinBox,ui->horizontalSlider,&QSlider::setValue);
    11. // 数字随着slider 的滑动而改变数值
    12. connect(ui->horizontalSlider,&QSlider::valueChanged,ui->sBox,&QSpinBox::setValue);
    13. }
    14. smallwidget::~smallwidget()
    15. {
    16. delete ui;
    17. }
    18. int smallwidget::getNumber()
    19. {
    20. return ui->sBox->value();
    21. }
    22. void smallwidget::setNUber(int num)
    23. {
    24. ui->sBox->setValue(num);
    25. }
    Widget
    1. #include "widget.h"
    2. #include "ui_widget.h"
    3. #include
    4. Widget::Widget(QWidget *parent)
    5. : QWidget(parent)
    6. , ui(new Ui::Widget)
    7. {
    8. ui->setupUi(this);
    9. //获得功能
    10. connect(ui->getBtn,&QPushButton::clicked,[=](){
    11. qDebug()<< ui->mywidget->getNumber();
    12. });
    13. connect(ui->setBtn,&QPushButton::clicked,[=](){
    14. ui->mywidget->setNUber(23);
    15. });
    16. }
    17. Widget::~Widget()
    18. {
    19. delete ui;
    20. }

  • 相关阅读:
    使用pycharm远程连接到Linux服务器进行开发
    Linux常用命令笔记
    [硬件基础]-快速了解555定时器
    网络安全与密码学--AES加密
    重要公告|投票委托已经上线,应该如何选择社区代表?
    设计模式-行为型模式-解释器模式
    前端实现菜单&按钮级权限
    【MySQL入门】第三话 · MySQL中常见的数据类型
    在Unity中模拟汽车的移动
    Android开发——布局总结
  • 原文地址:https://blog.csdn.net/weixin_39354845/article/details/127643744