1. my first QT program.cpp
#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget; //创建一个框体.
window->setWindowTitle("My first QT program!!");
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(40); //滑动器设置初始值.
QHBoxLayout *layout = new QHBoxLayout; //设置布局.
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return app.exec();
}
![Qt: <wbr>test! <wbr>test! Qt: <wbr>test! <wbr>test!](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
2. hello.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return app.exec();
}
![Qt: <wbr>test! <wbr>test! Qt: <wbr>test! <wbr>test!](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
3. button.cpp
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton *button = new QPushButton("Quit");
QObject::connect(button , SIGNAL(clicked()) , &app , SLOT(quit()) );
button->show();
return app.exec();
}
![Qt: <wbr>test! <wbr>test! Qt: <wbr>test! <wbr>test!](http://simg.sinajs.cn/blog7style/images/common/sg_trans.gif)
connect(sender , SIGNAL( signal() ) , receiver , SLOT( slot() ) );
sender , receiver: 指向QObject的指针
signal , slot: 函数名.
例子:connect(button , SIGNAL( clicked() ) , &app , SLOT( quit() ) );
解释:当button按钮接收到点击信号就关闭app窗口.
- 一个信号可以连接多个槽.
- 多个信号可以连接同一个槽.
- 一个信号可以与另一个信号相连接.
- 连接可以被移除: disconnect(sender , SIGNAL() , receiver , SLOT() ); (第四种情况会很少用.)