QT-纯代码控件-QHBoxLayout(水平布局)

用两个控件实现一个水平布局的效果

1.新建一个无ui界面的工程,其基类为widget

2.代码实现

widget.h头文件不用做任何改变

widget.cpp

#include "widget.h"
#include <QSlider>      //滑竿控件
#include <QSpinBox>     //spinbox控件
#include <QLayout>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    //添加两个控件
    QSpinBox * SpinBox = new QSpinBox();
    QSlider * Slider = new QSlider(Qt::Horizontal);
    SpinBox->setValue(46);
    Slider->setMaximum(100);
    Slider->setMinimum(0);
    Slider->setValue(50);
    Slider->update();
    //创建布局对象,将控件添加到其中
    QHBoxLayout * layout = new QHBoxLayout;
    layout->addWidget(SpinBox);
    layout->addWidget(Slider);
    //在窗体上设置layout
    this->setLayout(layout);
    //信号与槽函数连接
    connect(Slider,SIGNAL(valueChanged(int)),SpinBox,SLOT(setValue(int)));
    connect(SpinBox,SIGNAL(valueChanged(int)),Slider,SLOT(setValue(int)));
}

Widget::~Widget()
{

}

main.cpp

#include "widget.h"
#include <QApplication>
#include <QSlider>
#include <QSpinBox>
#include <QLayout>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;

    w.setWindowTitle("水平布局");
    w.resize(300,80);
    w.show();
    /*
     *  以下代码和添加在构造函数中的方式是同样的
    //新建两个控件
    QSpinBox * SpinBox = new QSpinBox(&w);
    QSlider * Slider = new QSlider(Qt::Horizontal,&w);
    SpinBox->setValue(46);
    Slider->setValue(50);
    //创建布局对象,将控件添加到其中
    QHBoxLayout * layout = new QHBoxLayout;
    layout->addWidget(SpinBox);
    layout->addWidget(Slider);
    //在窗体上设置layout
    w.setLayout(layout);

    this->setwindowTitile("水平布局");
    this->resize(300,80);

    */


    return a.exec();
}

3.效果展示

QT-纯代码控件-QHBoxLayout(水平布局)_第1张图片

你可能感兴趣的:(QT)