<b>Qt学习之路(5):组件筹划</b>[VC/C++编程]
本文“<b>Qt学习之路(5):组件筹划</b>[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
顾名思义,绝对定位就是利用最原始的定位办法,给出这个组件的坐标和长宽值.这样,Qt就知道该把组件放在那边,以及怎么设置组件的大小了.但是这样做的一个问题是,假如用户改变了窗口大小,比方点击了最大化大概拖动窗口边沿,这时,你就要自己编写呼应的函数来呼应这些改变,以避免那些组件还只是暗暗地呆在一个角落.大概,更简单的办法是直接禁止用户改变大小.
不过,Qt供应了别的的一种机制,就是筹划,来办理这个问题.你只要把组件放入某一种筹划之中,当需求调整大小大概位置的时刻,Qt就知道该怎样举行调整.这近似于Swing的筹划管理器,不过Qt的筹划没有那么多,只有有限的几个.
来看一下下面的例子:
#include <QtGui/QApplication>
#include <QtGui/QWidget>
#include <QtGui/QSpinBox>
#include <QtGui/QSlider>
#include <QtGui/QHBoxLayout>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
window->setWindowTitle("Enter your age");
QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
spinBox->setRange(0, 130);
slider->setRange(0, 130);
QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
spinBox->setValue(35);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return app.exec();
}
这里利用了两个新的组件:QSpinBox和QSlider,以及一个新的顶级窗口QWidget.QSpinBox是一个有上下箭头的微调器,QSlider是一个滑动杆,只要运行一下就会懂得毕竟是什么东西了.
代码并非那么难懂,还是来简单的看一下.首先成立了一个QWidget的实例,调用setWindowTitle函数来设置窗口标题.然后成立了一个QSpinBox和QSlider,辨别设置了它们值的范围,利用的是setRange函数.然后举行信号槽的链接.这点背面再具体阐明.然后是一个QHBoxLayout,就是一个水平筹划,按照从左到右的次序举行增添,利用addWidget增添好组件后,调用QWidget的 setLayout把QWidget的layout设置为我们定义的这个Layout,这样,程序就完成了!
编译运行一下,可以看到效果:
假如最大化的话:
以上是“<b>Qt学习之路(5):组件筹划</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |