Qt Creator是一个轻量级的跨平台集成开发环境(IDE),专为使用Qt框架进行应用程序开发而设计。这个工具功能强大、易于使用、快速且高效,被广泛用于编写各种类型的应用程序,包括桌面应用程序、移动应用程序和嵌入式系统等。
Qt Creator提供的主要功能包括:
- 可视化的界面设计器和代码编辑器:可以帮助开发者更快捷地创建复杂的用户界面和处理各种事件。
- 调试工具:允许开发人员在代码中设置断点以及检查变量、堆栈和调用树等信息。
- 版本控制工具:有助于开发团队协同工作。
- 具有自动完成和智能提示功能:可以提高编程效率。
- 支持多语言和跨平台的开发环境:可以满足不同开发者的需求。
- 紧密集成的Qt框架:使得开发者可以更容易地管理和部署他们的应用程序。
此外,Qt Creator还具有强大的编辑器功能,如语法高亮、代码折叠、智能提示、自动完成和代码重构等。总的来说,Qt Creator是一个功能齐全、易于使用且高效的跨平台IDE,适用于各种类型的应用程序开发,特别是那些使用Qt框架的开发者。
如果刚安装第一次打开Qt Creator,先检查构建套件(Kit)是否正常。
点击【编辑(E)】->【Preferences...】菜单项,打开界面,左边选择【构建套件(Kit)】,如下图,默认找到MSVC 2019表示开发环境正常。
打开 Qt Creator,点击"创建项目..."按钮,打开界面,选择"Application (Qt)"->"Qt Widgets Application":
输入项目"名称:"和"创建路径:",点击"下一步":
选择"CMake"构建方式,点击"下一步":
输入创建程序主界面类名称和文件等信息,默认即可,点击"下一步":
没有翻译文件,默认进入"下一步":
选择"Desktop Qt 6.5.3 MSVC2019 64bit"编译构建,点击"下一步":
暂时不添加到版本控制系统,点击"完成",创建第一个GUI程序:
Qt 项目文件清单如下:
Qt Creator主界面布局介绍如下:
编辑模式:用于修改源文件等。
调试模式:方便查看调试信息等。
项目模式:可以查看和修改项目配置信息。
在【项目】文件结构里面,鼠标双击"mainwindow.ui"文件:
鼠标拖一个"Push Button"按钮到中间对话框设计界面上:
什么是槽函数:某个信号(或消息、事件等)的具体实现函数叫槽函数。
例如Pusu Button按钮点击的时候,会发射一个QPushButton::clicked()信号,界面类就可以利用槽函数来响应信号,编写按钮触发的业务逻辑代码。
public slots: // slots 用于修饰以下所有函数为槽函数
// 槽函数
void slotPushButtonClicked(bool checked = false);
// 槽函数实现
void MainWindow::slotPushButtonClicked(bool checked)
{
QMessageBox::information(this, "提示信息", "第一个弹框例子");
}
// 修改按钮显示名称
ui->pushButton->setText("点击我");
connect() 连接简单理解就是绑定的意思。
通过connect()连接函数,把Push Button按钮的QPushButton::clicked()信号,和槽函数slotPushButtonClicked()连接到一起,当按钮点击事件clicked()信号发射时,slotPushButtonClicked()函数就相应的执行。
// 连接按钮的 clicked 点击事件到 slotPushButtonClicked 槽函数
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::slotPushButtonClicked);
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
//添加以下二行代码
public slots: // slots 用于修饰以下所有函数为槽函数
// 槽函数
void slotPushButtonClicked(bool checked = false);
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "./ui_mainwindow.h"
#include // 使用 QMessageBox 弹出信息框,需要包含头文件
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 修改按钮显示名称
ui->pushButton->setText("点击我");
// 连接按钮的 clicked 点击事件到 slotPushButtonClicked 槽函数
connect(ui->pushButton, &QPushButton::clicked, this, &MainWindow::slotPushButtonClicked);
}
MainWindow::~MainWindow()
{
delete ui;
}
// 槽函数实现
void MainWindow::slotPushButtonClicked(bool checked)
{
QMessageBox::information(this, "提示信息", "第一个弹框例子");
}
选择菜单【构建】->【构建项目"lesson01"】,或按"Ctrl+B"编译项目:
点击以下按钮,或按"Ctrl+R"运行程序:
程序运行结果:
CMake是一个跨平台的编译(构建)工具,可以用简单的语句来描述所有平台的编译过程。CMake能够输出各种各样的Makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。
CMake的配置文件是CMakeLists.txt,CMake不会直接建构出最终的软件,而是产生标准的建构档(如Unix的Makefile或Windows Visual C++的projects/workspaces),然后再依一般的建构方式使用。
Qt Creator利用CMake来帮助管理和构建C++程序的项目。
(lesson01)项目自动生成的CMakeLists.txt源码如下:
cmake_minimum_required(VERSION 3.5)
project(lesson01 VERSION 0.1 LANGUAGES CXX)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
set(PROJECT_SOURCES
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
)
if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
qt_add_executable(lesson01
MANUAL_FINALIZATION
${PROJECT_SOURCES}
)
# Define target properties for Android with Qt 6 as:
# set_property(TARGET lesson01 APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR
# ${CMAKE_CURRENT_SOURCE_DIR}/android)
# For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation
else()
if(ANDROID)
add_library(lesson01 SHARED
${PROJECT_SOURCES}
)
# Define properties for Android with Qt 5 after find_package() calls as:
# set(ANDROID_PACKAGE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/android")
else()
add_executable(lesson01
${PROJECT_SOURCES}
)
endif()
endif()
target_link_libraries(lesson01 PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)
# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
if(${QT_VERSION} VERSION_LESS 6.1.0)
set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.lesson01)
endif()
set_target_properties(lesson01 PROPERTIES
${BUNDLE_ID_OPTION}
MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE
)
include(GNUInstallDirs)
install(TARGETS lesson01
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(lesson01)
endif()
-【End】-
哈喽,大家好!我是喜欢coding的小二,一枚“靓仔又不掉头发”的C++开发大头兵;欢迎围观公众号(20YC编程),定期会分享一些技术开发经验、行业资讯、业界动态等。期待您的关注,一起交流学习进步。
喜欢本文章,记得点赞、分享、关注哦~