qt笔记1

来源:互联网 发布:linux视频编辑器4k 编辑:程序博客网 时间:2024/05/17 23:17

整体环境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会自动“重定义父对象”他们会成为这个安装了布局的            //窗口的子对象。也正式基于这个原因,当创建一个需要放进某个布局中的窗口部件时,就没有必要为其显示的指定父对象了。