1. hello Qt
1. 示例代码
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel *label = new QLabel("Hello Qt!");
label->show();
return a.exec();
}
2. 代码解释
1) QApplication:用来管理整个应用程序所用到的资源。
2) 窗口部件(QLabel):用户界面中的一个可视化元素(如按钮,菜单,滚动条)
3) label->show():使标签可见(创建窗口部件时,标签是隐藏的)
4) return a.exec():将控制权转交给Qt,程序会进入无限循环中。
3. 程序输出
2. 建立连接
1. 示例代码
#include <QApplication>
#include <QPushButton>
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();
}
2. 代码解释
1) SIGNAL(clicked()):Qt的窗口部件通过发射信号(signal)来表明一个用户动作已经发生或者是一个状态已经改变了。这里用户单击按钮时,该按钮就发射了一个clicked信号。
2) connect: 发送的信号通过connect,和槽函数相连接,这样槽函数可以自动执行。
3) SLOT(quit()): 接收到信号后执行的槽函数。
3. 程序输出
3. 窗口布局
1. 示例代码
#include <QApplication>
#include <QHBoxLayout>
#include <QSlider>
#include <QSpinBox>
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();
}
2. 代码解释
1) QWidget:为主窗口,通过setWindowTitle来设置窗口标题栏上的名字。
2) QHBoxLayout:水平方向排列窗口部件。
3) setLayout:把窗口安装在布局管理器上。
3. 程序输出