网站建设与管理专业工资高吗,大型网站开发案例,出入长春最新通知今天,做导购网站 商品哈喽大家好#xff0c;我是20YC编程小二#xff01;扫码关注公众号#xff0c;现在可免费领取《C程序员》在线视频教程哦#xff01;#下面开始今天内容# 1. Qt Creator介绍
Qt Creator是一个轻量级的跨平台集成开发环境(IDE)#xff0c;专为使用Qt框架进行应用程序开发而…哈喽大家好我是20YC编程小二扫码关注公众号现在可免费领取《C程序员》在线视频教程哦#下面开始今天内容# 1. Qt Creator介绍
Qt Creator是一个轻量级的跨平台集成开发环境(IDE)专为使用Qt框架进行应用程序开发而设计。这个工具功能强大、易于使用、快速且高效被广泛用于编写各种类型的应用程序包括桌面应用程序、移动应用程序和嵌入式系统等。
Qt Creator提供的主要功能包括 可视化的界面设计器和代码编辑器可以帮助开发者更快捷地创建复杂的用户界面和处理各种事件。调试工具允许开发人员在代码中设置断点以及检查变量、堆栈和调用树等信息。版本控制工具有助于开发团队协同工作。具有自动完成和智能提示功能可以提高编程效率。支持多语言和跨平台的开发环境可以满足不同开发者的需求。紧密集成的Qt框架使得开发者可以更容易地管理和部署他们的应用程序。 此外Qt Creator还具有强大的编辑器功能如语法高亮、代码折叠、智能提示、自动完成和代码重构等。总的来说Qt Creator是一个功能齐全、易于使用且高效的跨平台IDE适用于各种类型的应用程序开发特别是那些使用Qt框架的开发者。
2. 检查Qt构建套件(Kit)是否正常 如果刚安装第一次打开Qt Creator先检查构建套件(Kit)是否正常。 点击【编辑(E)】-【Preferences...】菜单项打开界面左边选择【构建套件(Kit)】如下图默认找到MSVC 2019表示开发环境正常。 3. 新建第一个Qt GUI程序
创建一个Qt Widgets Application项目
打开 Qt Creator点击创建项目...按钮打开界面选择Application (Qt)-Qt Widgets Application 输入项目名称和保存路径
输入项目名称和创建路径点击下一步 选择使用CMake构建方式
选择CMake构建方式点击下一步 修改QMainWindow主界面类名、文件名
输入创建程序主界面类名称和文件等信息默认即可点击下一步 选择翻译文件
没有翻译文件默认进入下一步 选择构建套件
选择Desktop Qt 6.5.3 MSVC2019 64bit编译构建点击下一步 选择版本控制系统如Git、SVN等
暂时不添加到版本控制系统点击完成创建第一个GUI程序 Qt 项目文件结构
Qt 项目文件清单如下 4. Qt Creator主界面介绍
Qt Creator主界面布局
Qt Creator主界面布局介绍如下 切换到编辑模式 编辑模式用于修改源文件等。 切换到调试模式 调试模式方便查看调试信息等。 切换到项目模式 项目模式可以查看和修改项目配置信息。 5. 添加按钮和实现弹出消息框
打开mainwindow.ui窗体设计文件
在【项目】文件结构里面鼠标双击mainwindow.ui文件 添加 Push Button 按钮
鼠标拖一个Push Button按钮到中间对话框设计界面上 .h 头文件添加槽函数 什么是槽函数某个信号或消息、事件等的具体实现函数叫槽函数。 例如Pusu Button按钮点击的时候会发射一个QPushButton::clicked()信号界面类就可以利用槽函数来响应信号编写按钮触发的业务逻辑代码。
public slots: // slots 用于修饰以下所有函数为槽函数// 槽函数void slotPushButtonClicked(bool checked false);
.cpp 文件实现槽函数功能
// 槽函数实现
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);mainwindow.h完整代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include QMainWindowQT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACEclass 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_Hmainwindow.cpp完整代码
#include mainwindow.h
#include ./ui_mainwindow.h
#include QMessageBox // 使用 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】或按CtrlB编译项目 运行程序
点击以下按钮或按CtrlR运行程序 程序运行结果 6. 扩展知识CMake介绍
CMake是一个跨平台的编译构建工具可以用简单的语句来描述所有平台的编译过程。CMake能够输出各种各样的Makefile或者project文件能测试编译器所支持的C特性类似UNIX下的automake。
CMake的配置文件是CMakeLists.txtCMake不会直接建构出最终的软件而是产生标准的建构档如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_SOURCESmain.cppmainwindow.cppmainwindow.hmainwindow.ui
)if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)qt_add_executable(lesson01MANUAL_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 TRUEWIN32_EXECUTABLE TRUE
)include(GNUInstallDirs)
install(TARGETS lesson01BUNDLE DESTINATION .LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)if(QT_VERSION_MAJOR EQUAL 6)qt_finalize_executable(lesson01)
endif()