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

it2022-05-05  132

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

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.效果展示


最新回复(0)