QT基础 - Hello world

目录

简介:

一. 创建项目

二. 创建

mainwindow.h

QApplication

QApplication a(argc, argv);

Mainwindow w 和 w.show()

return a.exec();

三. 创建  Lable hello

引入 QLable

引入QWidget

使用函数

完整代码

四. 总结


简介:

"Hello World"程序是许多编程语言中最简单的程序之一,它的作用是在屏幕上输出"Hello World"这个字符串。对于QT基础来说,"Hello World"程序通常是一个简单的QT应用程序,用于展示如何创建一个基本的QT窗口并在其中显示文本。

一. 创建项目

二. 创建

初始化项目代码

详解 QApplication

mainwindow.h

mainwindow.h通常是 Qt 中主窗口类的头文件。

以下是对其常见内容的详细解释:

  • 类定义:一般定义了一个继承自 QMainWindow 的类,比如 class MainWindow : public QMainWindow
  • 成员变量声明:可能会声明一些用于控制窗口状态或与界面元素相关的变量。
  • 信号声明:可以定义自定义的信号,用于与其他组件进行交互通信。
  • 槽函数声明:用于处理各种事件,如按钮点击、窗口状态改变等。
  • 界面元素相关声明:例如菜单、工具栏、状态栏等相关对象的声明。
  • 一些辅助函数声明:可能包括用于初始化界面、设置布局等的函数声明

例如:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);

signals:
    // 自定义信号声明

public slots:
    // 槽函数声明

private:
    // 私有成员变量声明
};

#endif // MAINWINDOW_H

QApplication

主要功能

  • 管理应用程序的全局状态和资源。
  • 处理应用程序级别的事件,如系统消息等。

一些关键特点

  • 事件循环:通过调用exec()方法启动事件循环,使得应用程序能够持续接收和处理各种事件。
  • 命令行参数处理:可以获取和解析启动应用程序时传递的命令行参数。
  • 全局设置:如设置应用程序的图标、风格等。
  • 应用程序对象唯一性:通常在一个应用程序中只创建一个QApplication对象。

在实际使用中,它是构建 Qt 应用程序的基础之一。比如:

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    // 其他代码
    return app.exec();
}

这样就创建了一个QApplication对象并启动了事件循环,让应用程序可以与用户进行交互并响应各种事件。它确保了应用程序的正常运行和协调各种系统资源与交互。

QApplication a(argc, argv);

这行代码主要有以下几个重要方面:

  • QApplication a(argc, argv) 创建了一个 QApplication 对象,命名为 a
    • argc 是命令行参数的数量。
    • argv 是包含命令行参数具体内容的数组。通过传递这些参数,QApplication 可以对一些与命令行相关的操作进行处理,比如根据特定的命令行参数来初始化应用程序的某些设置。

创建这个对象非常关键,因为它启动了整个应用程序的运行机制,包括事件循环等。它负责协调和管理应用程序与操作系统之间的交互,接收和分发各种系统事件和用户交互事件到相应的部件进行处理。没有这个对象的创建和初始化,Qt 应用程序将无法正常运行和响应各种操作。

Mainwindow w 和 w.show()

  • MainWindow w:这里创建了一个 MainWindow 类的实例 wMainWindow 通常是自定义的继承自 QMainWindow 的主窗口类,它代表了整个应用程序的主要界面窗口。
  • w.show():调用这个实例的 show() 方法,其作用是显示出这个主窗口,使其在屏幕上可见,以便用户可以与之进行交互。这样就启动了主窗口的显示,用户可以看到并操作窗口内的各种元素和功能。这是将设计好的主窗口呈现给用户的关键步骤。

return a.exec();

a.exec()会启动应用程序的事件循环。当执行到这一步时,应用程序会进入一个等待状态,不断地接收和处理各种事件,比如鼠标点击、键盘输入、系统通知等。

直到用户关闭应用程序或通过某种方式明确终止事件循环,exec()方法才会返回。返回的值通常表示应用程序的退出状态码。通过这种方式,确保了应用程序能够持续响应和处理各种事件,维持与用户的交互,直到合适的时机结束运行。它是 Qt 应用程序保持活性和功能性的关键机制之一。

三. 创建  Lable hello

经过第二节,就明白了每行函数的具体含义,接下来引入QLable,来实现在窗口显示 Hello,World!

引入 QLable

#include <QLabel>

详解

QLabel 是 Qt框架中的一个标签类,用于显示文本或图像。它可以在窗口或其他容器中显示静态文本,并且可以根据需要设置格式、对齐方式和尺寸。以下是QLabel的一些常用属性和方法:

  • 属性
    • text:获取或设置显示的文本。
    • pixmap:获取或设置显示的图像。
    • alignment:设置文本的对齐方式,如水平靠左、靠右、居中,垂直靠上、靠下、居中。
    • indent:设置文本的缩进值。
    • margin:设置显示内容的边距。
    • wordWrap:设置显示的文本是否允许换行。
    • scaledContents:设置显示图像时是否允许缩放。
  • 方法
    • **setText(const QString &text)**:设置显示的文本。
    • **setPixmap(const QPixmap &pixmap)**:设置显示的图像。
    • **setNum(int num)**:设置显示的文本为代表整数num的字符串。
    • **setNum(double num)**:设置显示的文本为代表浮点数num的字符串。
    • **clear()**:清空显示内容。

QLabel还支持一些信号,如linkActivated信号在用户点击链接时发射,linkHovered信号在鼠标悬停在链接上时发射

引入QWidget

基本特性

  • 它是所有用户界面元素的基类。
  • 可以作为独立的窗口或其他控件的容器。

主要功能

  • 绘制和显示:负责自身及子控件的绘制和显示。
  • 事件处理:接收和处理各种事件,如鼠标、键盘事件等。
  • 布局管理:与布局类结合实现对内部子控件的合理布局。

属性

  • 如尺寸、位置、背景颜色等。

方法

  • setGeometry():设置控件的几何形状(位置和大小)。
  • show()hide()等用于显示和隐藏。
  • 还有很多与事件处理、属性设置相关的方法。

QWidget可以通过继承和自定义来创建各种具体的界面元素,如按钮、文本框等。它提供了一个基础框架,使得开发者可以构建丰富多样的用户界面。

使用函数

使用 QLabel 的 setText("创建文字")  move:位置

QWidget的  show 显示

效果

完整代码

#include <QApplication>
#include <QWidget>
#include <QLabel>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget w;
    w.setWindowTitle("Hello World");

    QLabel label(&w);
    label.setText("Hello World!");
    label.move(50, 50);

    w.show();

    return a.exec();
}

四. 总结

以上是使用 QT 创建一个显示“hello”的简单示例的总结:

  1. 在 main 函数中创建 QApplication 对象来管理应用程序。
  2. 创建自定义窗口类的实例,如 QWidget w
  3. 创建QLabel类的实例  如 QLabel label;
  4. 调用label.setText("设置显示的文字")
  5. 调用 w.show() 来显示窗口。
  6. 最后通过 return a.exec() 启动事件循环,使窗口能够接收和处理用户交互等事件,保持程序持续运行直到用户关闭窗口或其他终止条件发生。

这样就实现了一个简单的在 QT 中创建显示“hello”的程序,通过这些步骤可以构建出基本的 QT 界面并展示特定的信息。

  • 23
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一然明月(全栈)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值