C++GUI Programming with QT学习笔记day01

1,从HelloQt开始

 #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();
 }
第一,二行:是代码中需要使用的类的头文件。在 Qt4 中,可以写成<QApplication>的
格式,当然也可写成“QApplication.h”。
第三行:是 main 函数的标准写法
第五行:创建一个 QApplication 对象,管理应用程序的资源。
第六行:QLabel 对象,QLabel 是一个 Qt 提供的小控件,显示一行文本。
第七行:显示 QLabel。
第八行:QApplication.exec(),让程序进入消息循环。等待可能的菜单,工具条,鼠标等
的输入,进行响应。
将以上代码放到名为 hello.cpp 中,保存,编译过程如下:
qmake -project,qmake 命令创建 hello.pro,是平台无关的工程文件。
在 hello.pro 所在目录下,运行 make(unix)或者 nmake(windows)。
mkdir Hello
cd Hello
vim hello.cpp
qmake -project
qmake Hello.pro
make
./Hello
第 6 行代码还可以如下替换:
QLabel *label = new QLabel("<h2><i>Hello</i> "
    "<font color=red>Qt!</font></h2>");
这里面包含了 html 文本,显示的字体,颜色会改变。
实际程序中,下面两行是比不可少的。
QApplication app(argc, argv);
    return app.exec();

2,连接信号和相应函数

 #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 的控件会发出消息(signal),例如,当点击按钮时,
按钮会发送 clicked()消息,这个消息可以连接到一个函数上(这个函数在这里成为 slot)。这样,当一个消息发送时,
slot 函数可以自动执行。
在这个例子中,我们连接了按钮的 clicked
信号和 QApplication 的 quit 函数

3,控件排列

 #include <QApplication>
 #include <QHBoxLayout>
 #include <QSlider>
 #include <QSpinBox>
 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     QWidget *window = new QWidget;
     window->setWindowTitle("Enter Your Age");

     QSpinBox *spinBox = new QSpinBox;11 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 app.exec();
 }
程序中使用了三个控件:QSpinBox,QSlider 和 QWidget。QWidget 是这个程序的主窗
口。QSpinBox 和 QSlider 被放在 QWidget 中;他们是 QWidget 的 children。反过来,
我们也可以称 QWidget 是 QSpinBox 和 QSlider 的 parent。QWidget 没有 parent,因
为它是程序的顶层窗口。在 QWidget 及其子类的构造函数中,都有一个 QWidget*参数,
用来指定它们的父控件。

Qt 有三个主要的布局管理器:

QHBoxLayout:水平排列控件。
QVBoxLayout:垂直排列控件。
QGridLayout:按矩阵方式排列控件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值