您的位置:首页 > 游戏 > 游戏 > QT入门笔记-自定义控件封装 30

QT入门笔记-自定义控件封装 30

2024/9/24 23:22:38 来源:https://blog.csdn.net/quaer/article/details/140249476  浏览:    关键词:QT入门笔记-自定义控件封装 30

具体代码如下:

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \smallwidget.cpp \widget.cppHEADERS += \smallwidget.h \widget.hFORMS += \smallwidget.ui \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

#include "smallwidget.h"
#include "ui_smallwidget.h"
#include <QDebug>
smallWidget::smallWidget(QWidget *parent): QWidget(parent), ui(new Ui::smallWidget)
{ui->setupUi(this);//信号和槽中不需要写函数名后的() 注意重载 使用函数指针或者类型转换来表示connect(ui->spinBox,(void (QSpinBox:: *)(int))&QSpinBox::valueChanged,ui->horizontalSlider,&QSlider::setValue);connect(ui->horizontalSlider,&QSlider::valueChanged,ui->spinBox,&QSpinBox::setValue);
}smallWidget::~smallWidget()
{delete ui;
}void smallWidget::getNum()
{qDebug()<<ui->spinBox->value();
}void smallWidget::setNum(int n )
{ui->horizontalSlider->setValue(50);
}

#ifndef SMALLWIDGET_H
#define SMALLWIDGET_H#include <QWidget>namespace Ui {
class smallWidget;
}class smallWidget : public QWidget
{Q_OBJECTpublic:explicit smallWidget(QWidget *parent = nullptr);~smallWidget();
public:void getNum();void setNum(int n);private:Ui::smallWidget *ui;
};#endif // SMALLWIDGET_H

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);connect(ui->btn_get,&QPushButton::clicked,ui->widget,&smallWidget::getNum);connect(ui->btn_set,&QPushButton::clicked,ui->widget,&smallWidget::setNum);
}Widget::~Widget()
{delete ui;
}
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;
};
#endif // WIDGET_H

运行结果:

获取进度 下方qDebug输出进度

设置一般设置到50

拖动进度条和上下调节数字相互关联.

注意重载(信号和槽) 使用函数指针或者类型转换.

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com