《学习Qt之路2》笔记:QT布局管理器

本文是《学习Qt之路2》笔记,主要介绍了Qt中的五种布局管理器:QHBoxLayout实现水平布局,QVBoxLayout实现垂直布局,QGridLayout提供网格布局,QFormLayout使用表格形式组织组件,QStackedLayout则用于组件的Z轴堆叠,实现向导效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt 提供了几种布局管理器供我们选择:


QHBoxLayout:按照水平方向从左到右布局;

QVBoxLayout:按照竖直方向从上到下布局;

QGridLayout:在一个网格中进行布局,类似于 HTML 的 table;

QFormLayout:按照表格布局,每一行前面是一段文本,文本后面跟随一个组件(通常是输入框),类似 HTML 的 form;

QStackedLayout:层叠的布局,允许我们将几个组件按照 Z 轴方向堆叠,可以形成向导那种一页一页的效果。



#include <QApplication>
#include <QHBoxLayout>
#include <QLabel>
#include <QSpinBox>
#include <QWidget>
#include <QSlider>


int main(int argc, char *argv[])
{
	QApplication a(argc, argv);
	
	QWidget window;
    window.setWindowTitle("Enter your age");

	QSpinBox *spinBox = new QSpinBox(&window);
	QSlider  *slider =  new QSlider(Qt::Horizontal,&window);
	spinBox->setRange(0,130);
	slider->setRange(0,130);

	QObject::connect(slider,&QSlider::valueChanged,spinBox,&QSpinBox::setValue);
	void (QSpinBox:: *spinBoxSignal)(int) = &QSpinBox::valueChanged;
	QObject::connect(spinBox,spinBoxSignal,slider,&QSlider::setValue);
	//上行代码如果改成 QObject::connect(spinBox,&QSpinBox::valueChanged,slider,&QSlider::setValue)就会报错
	//这是因为QSpinBox::valueChanged是个重载函数分别为void valueChanged(int)和void valueChanged(const QString &)
	//当使用&QSpinBox::valueChanged取函数指针时,编译器就不知道取哪一个函数
	spinBox->setValue(35);

	//创建一个布局管理器,将2个组件都添加到这个布局管理器,并把其设置成窗口的布局管理器
	QHBoxLayout *layout = new QHBoxLayout;
	layout->addWidget(spinBox);
	layout->addWidget(slider);
	window.setLayout(layout);

	window.show();


	return a.exec();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值