QT----第三天,Visio stdio自定义封装控件

2023-12-13 04:21:27

源码:CPP学习代码

第三天

1 自定义控件封装

新建一个QT widgetclass,同时生成ui,h,cpp文件

在这里插入图片描述

在smallWidget.ui里添加上你想要的控件并调试大小

在这里插入图片描述

回到mainwidget.ui,拖入一个widget(因为我们封装的也是widget),右击提升为,输入名字(名字一定要写对)。

在这里插入图片描述

此时还需要进入mainWidget.h,按住ALT进入"ui_mainWidget.h",修改smallWidget的<>为引号“”(“”是本地的头文件),这时候运行就能看到我们的控件了。

在这里插入图片描述

在smallwidget.cpp里编写代码,让这两个控件QspinxBox和QSilder联系起来,查找手册里的信号和槽,没有就查找父类

//QspinxBox移动,QSlider跟着移动 查手册,没有就查父类
connect(ui.spinBox,&QSpinBox::valueChanged,ui.horizontalSlider,&QSlider::setValue);
//QSilder移动,QspinxBox跟着移动
connect(ui.horizontalSlider, &QSlider::sliderMoved,ui.spinBox, &QSpinBox::setValue);

再添加两个按钮,一个显示值,一个让值变成一半

在smallwidget头文件里定义两个函数,并到cpp里实现

//设置值
void setNumber(int value);
//得到值
int getNumber();

void smallWidget::setNumber(int value)
{
 //设置值
 ui.spinBox->setValue(value);
}

int smallWidget::getNumber()
{
 //返回值
 return ui.spinBox->value();
}

再到mainwidget.cpp里实现信号的连接,由于smallwi是连接到mainwi里边的widget,所以可以通过ui来访问widget来得到我们定义的函数

//点击获取值
connect(ui.btn1,&QPushButton::clicked,[=](){
   qDebug()<< ui.widget->getNumber();
});
//点击设置值
connect(ui.btn2, &QPushButton::clicked, [=]() {
    ui.widget->setNumber(50);
 qDebug() << ui.widget->getNumber();
});

在这里插入图片描述

文章来源:https://blog.csdn.net/szn1316159505/article/details/134957575
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。