一、基本介绍
C++ 是一种通用的、静态类型的、大小写敏感的、自由格式的编程语言,支持过程化编程、面向对象编程和泛型编程。它最初由 Bjarne Stroustrup 在 1979 年在贝尔实验室开始开发,目的是扩展和改进 C 语言。
Qt 是一个跨平台的 C++ 应用程序框架,用于开发具有图形用户界面的应用程序,以及非GUI程序,如控制台工具和服务器。Qt 是用 C++ 编写的,并且提供了一个叫做 Qt C++ 库的大型集合,它包含了各种控件、功能和模块,用于开发复杂的应用程序。
二、关键特性
1、跨平台:Qt 支持多种操作系统,包括 Windows、macOS、Linux、iOS 和 Android。
2、信号和槽机制:Qt 提供了一种独特的信号和槽机制,用于对象之间的通信,这使得 GUI 编程更加简单和直观。
3、丰富的控件和功能:Qt 提供了大量的预制控件和功能,如按钮、文本框、列表、图表等,以及文件处理、网络编程、数据库访问等模块。
4、QML 和 Qt Quick:Qt 提供了 QML(Qt Modeling Language),这是一种声明式编程语言,用于创建动态的 UI 和流畅的动画效果。
5、国际化和本地化:Qt 支持多语言应用程序的开发,可以轻松地添加和切换不同的语言。
6、Qt Creator:Qt 自带一个集成开发环境(IDE)Qt Creator,它提供了代码编辑、调试、项目管理等功能。
7、Qt for Device Creation:Qt 提供了一套工具和库,用于开发嵌入式和物联网(IoT)设备。
8、Qt 3D:Qt 提供了用于开发 3D 应用程序的模块。
9、Qt for WebAssembly:Qt 支持将应用程序编译为 WebAssembly,使得 Qt 应用程序可以在现代浏览器中运行。
三、代码示例
1. mainwindow.ui
(使用 Qt Designer 设计的 UI 文件)
这个文件通常通过 Qt Designer 来创建和编辑,但这里我们假设它已经存在,并且包含了一个按钮(QPushButton)。
2. mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void on_pushButton_clicked();private:Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
3. mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(on_pushButton_clicked()));
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::on_pushButton_clicked()
{QMessageBox::information(this, "Hello", "Button Clicked!");
}
4. main.cpp
#include "mainwindow.h"
#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);MainWindow w;w.show();return a.exec();
}
5. CMakeLists.txt
(用于构建项目)
cmake_minimum_required(VERSION 3.5)project(HelloQt)set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 11)find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)add_executable(HelloQt main.cpp mainwindow.cpp)target_link_libraries(HelloQt Qt5::Core Qt5::Gui Qt5::Widgets)
6. 构建和运行
1)确保你已经安装了 Qt 和 CMake。
2)将上述代码保存到相应的文件中。
3)在项目根目录下创建 CMakeLists.txt
文件,并填入上述 CMake 配置。
4)在终端中运行以下命令来构建项目:
mkdir build && cd build
cmake ..
make