使用Ui设计的样子:
代码运行后的情况,红色框里全为自定义的控件:
第一行自定义的控件:具体操作就是在ui设计的相应位置放置一个Widget容器,右键Widget将其提升为我们自己定义的控件类。
//头文件
#ifndef DIYWIDGET_H
#define DIYWIDGET_H
#include <QWidget>
class DiyWidget : public QWidget
{
Q_OBJECT
public:
explicit DiyWidget(QWidget *parent = nullptr);
signals:
};
#endif // DIYWIDGET_H
//源文件
#include "diywidget.h"
#include <QSpinBox>
#include <QSlider>
#include <QHBoxLayout>
DiyWidget::DiyWidget(QWidget *parent) : QWidget(parent)
{
QSpinBox *spnBox= new QSpinBox(this);
QSlider *slider = new QSlider(Qt::Horizontal,this);
//把控件加到布局中
QHBoxLayout *hLayout = new QHBoxLayout(this);
hLayout->addWidget(spnBox);
hLayout->addWidget(slider);
connect(spnBox,static_cast<void(QSpinBox::*)(int)>(&QSpinBox::valueChanged),slider,&QSlider::setValue);
connect(slider,&QSlider::valueChanged,spnBox,&QSpinBox::setValue);
}
?第二行自定义的控件:具体操作就是在ui设计的相应位置放置一个Widget容器,右键Widget将其提升为我们自己定义的控件类。
//头文件
#ifndef SMALLWIDGET_H
#define SMALLWIDGET_H
#include <QWidget>
class smallWidget : public QWidget
{
Q_OBJECT
public:
explicit smallWidget(QWidget *parent = nullptr);
signals:
};
#endif // SMALLWIDGET_H
//源文件
#include "smallwidget.h"
#include <QLabel>
#include <QRadioButton>
#include <QHBoxLayout>
smallWidget::smallWidget(QWidget *parent) : QWidget(parent)
{
QRadioButton *raoBtnYes = new QRadioButton(this);
QRadioButton *raoBtnNo = new QRadioButton(this);
QLabel *labelYes = new QLabel(this);
labelYes->setText(QStringLiteral("同意规定"));
QLabel *labelNo = new QLabel(this);
labelNo->setText(QStringLiteral("不同意规定"));
QHBoxLayout *hLayout = new QHBoxLayout(this);
hLayout->addWidget(raoBtnYes);
hLayout->addWidget(labelYes);
hLayout->addWidget(raoBtnNo);
hLayout->addWidget(labelNo);
}
?
|