第一章-Qt入门 1.3 窗口部件的布局

 一个简单的例子程序,来说明 如何用布局 layout  来管理窗口部件的几何形状, 如何利用信号和槽来同步窗口部件

   有三个窗口部件:

             一个QSpinBOx , 一个QSider ,一个QWidget 这个是主窗口, 前两个会显示在QWidget中,都是住窗口部件的子对象, 

      也可以说 QWidget 自己没有父对象,程序把它当作顶层窗口,

QWidget的构造函数以及他的所有子类都会带一个参数 QWIdget来说明他们的父窗口部件,中间部分的代码和前面的差不太多,在代码中已经注释

 下面介绍一下布局管理器,就是一个能够对其所负责窗口部件的尺寸大小和位置进行设置的对象,

Qt主要有三个布局管理器类:

 QHBoxLayout 在水平方向上排列窗口部件,从左到右 。。这里使用的就是个

QVBoxLayout   竖直方向上,从上到下

QGridLayout  把各个窗口排列在一个网格中

#include<Qapplication>
#include<QHBoxLayout>
#include<QSlider>
#include<QSpinBox>
int main(int argc,char *argv[]){
QApplication app(argc,argv);

QWidget *window=new QWidget;//创建QWidget对象,作为主窗口,
window->setWindowTitle("Enter your age");//调用setWindowTitle函数设置窗口标题栏上的文字

QSpinBox *spinbox=new QSpinBox; //创建QTspinbox QSlider的对象,
QSlider *slider=new QSlider(Qt::Horizontal);   //应该把主窗口传递给这两个部件,表明是他们的父窗口 ,但是这里没必要,布局系统会自行得出这个结果
spinbox->setRange(0,130);//设置有效范围
slider->setRange(0,130);


//两次连接  微调框和滑块互相同步,一个窗口值改变则发送valuechanged(int)信号 给另一个,另个接受到值 调用setvalue(int)槽设定值
QObject::connect(spinbox,SIGNAL(valueChanged(int)),
                 slider,SLOT(setValue(int))
                 );
QObject::connect(slider,SIGNAL(valueChanged(int)),spinbox,SLOT(setValue(int)));
spinbox->setValue(35);//避免无限循环,但是我发现减去这一段代码,我也没看出什么变化


QHBoxLayout *layout=new QHBoxLayout;//布局管理器    水平 
layout->addWidget(spinbox);// 自动重定义父对象  spinbox在左
layout->addWidget(slider);//右
window->setLayout(layout);//setLayout调用会在主窗口即window上安装该布局管理器  

window->show();
return app.exec();



}

运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值