整体环境ubuntu
1.编译方法
qmake -project
qmake 生成的.pro文件
make
2.建立链接
QObject::connect(触发的控件,SIGNAL(发射的信号),被链接的对象,SLOT(链接对象的槽))
eg:QObject::connect(button,SIGNAL(clicked()),&app,SLOT(quit()));
例子:
#include <QtGui/QApplication>
#include <QtGui/QHBoxLayout>
#include <QtGui/QSlider>
#include <QtGui/QSpinBox>
int main(int argc,char * argv[])
{
QApplication app(argc,argv);
QWidget *win=new QWidget;
win->setWindowTitle("Enter Your Age");
QSpinBox *spinbox=new QSpinBox;
QSlider *slider=new QSlider(Qt::Horizontal);
spinbox->setRange(0,130);
slider->setRange(0,130);
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;//布局管理器 QHBoxLayout 水平 QVBoxLayout 竖直方向 QGBoxLayout 把各个窗口部件排列在一个网格中
layout->addWidget(spinbox);
layout->addWidget(slider);
win->setLayout(layout); //会调用在窗口上安装该布局管理器,从软件底层来说,QSPinBox和QSlider会自动“重定义父对象”他们会成为这个安装了布局的
//窗口的子对象。也正式基于这个原因,当创建一个需要放进某个布局中的窗口部件时,就没有必要为其显示的指定父对象了。
win->show();
return app.exec();
}
重要:
win->setLayout(layout); //会调用在窗口上安装该布局管理器,从软件底层来说,QSPinBox和QSlider会自动“重定义父对象”他们会成为这个安装了布局的
//窗口的子对象。也正式基于这个原因,当创建一个需要放进某个布局中的窗口部件时,就没有必要为其显示的指定父对象了。