《C++ GUI Qt4编程》第1章——Qt入门

1.1 Hello Qt

#include <QtWidgets/QApplication>
#include <QLabel>

int main(int argc, char *argv[])
{
    // 创建了一个 QApplication 对象,用来管理整个应用程序所用到的资源。
    // 这个QApplication构造函数需要两个参数,分别是argc和argv,因为Qt支持它自己的一些命令行参数。
    QApplication a(argc, argv);
    //QLabel* label = new QLabel("Hello Qt!");
    QLabel* label = new QLabel("<h2><i>Hello</i> "
                               "<font color=red>Qt!</font></h2>");
    // 使QLabel标签(label)可见。在创建窗口部件的时候,标签通常都是隐藏的,这就允许我们可以先对其进行设置然后再显示它们,从而避免了窗口部件的闪烁现象。
    label->show();
    // 将应用程序的控制权传递给Qt。此时,程序会进入事件循环状态,这是一种等待模式,程序会等候用户的动作,例如鼠标单击和按键等操作。
    return a.exec();
}

image

image

1.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();
}

image

1.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;
    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();
}

image

image

Qt程序员最常使用的方式是先声明所需的窗口部件,然后设置它们所应具备的属性。程序员把这些窗口部件添加到布局中,布局会自动设置它们的位置和大小。利用Qt的信号和槽机理,并通过窗口部件之间的连接就可以管理用户的交互行为。

posted @ 2023-08-07 18:01  sdyan404  阅读(185)  评论(0编辑  收藏  举报