1. hello QT
#include <QApplication>
#include <qlabel.h>
int main(int argc, char *argv[])
{
//QApplication对象,用来管理整个应用程序所用到的资源
QApplication a(argc, argv);
//新建一个QLabel窗口部件
QLabel *label = new QLabel( "hello QT" );
//使QLabel标签可见(默认不可见)
label->show();
return a.exec();
}
程序输出:
2. 建立连接
#include <QApplication>
#include <qpushbutton.h>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPushButton *button = new QPushButton("quit");
QObject::connect( button, SIGNAL(clicked()), &a, SLOT(quit()));
button->show();
return a.exec();
}
程序输出:
当我们点击quit时候,程序会直接退出。
QT的窗口部件通过发射信号(signal)来表明一个用户动作已经发生了或者是一个状态已经改变了。例如,当用户单机QPushButton时,该按钮就会发射一个clicked()信号。信号可以与函数(在这里称为槽,slot)相连接,以便在发射信号时,槽可以得到自动执行。
3. 窗口部件的布局
#include <QApplication>
#include <QHBoxLayout>
#include <qslider.h>
#include <qspinbox.h>
int main(int argc, char *argv[])
{
QApplication a(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(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);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return a.exec();
}
程序输出:
1) 使用connect函数保证spinBox和slider同步修改。
2)布局管理器就是一个能够对其所负责窗口部件的尺寸大小和位置进行设置的对象。QT主要有三个布局管理器类:
(1)QHBoxLayout.水平方向上排列窗口部件,从左到右。
(2)QVBoxLayout:在竖直方向上排列窗口部件,从上到下。
(3)QGridLayout:把各个窗口部件排列在一个网格中。