【实操干货】如何开始用Qt Widgets编程?(五)

Qt 是目前最先进、最完整的跨平台C++开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。

在本文中,我们通过使用C++和Qt Widgets模块实现一个简单的记事本应用程序来学习基本的Qt知识,该应用程序是一个小型的文本编辑器,允许您创建文本文件、保存、打印或重新打开并在此编辑它,还可以设置要使用的字体。

在上文中(点击这里回顾>>),我们主要介绍了如何开始添加用户交互,例如打开文件、保存文件、以另一个名称保存文件等,本文将继续介绍用户交互添加的其他部分,以及如何从命令行构建和运行。

点击获取Qt Widget组件下载(Q技术交流:166830288)

添加用户交互
打印文件

如果想要使用打印功能,需要在项目文件中添加PrintSupport:

cpp 复制代码
find_package(Qt6
REQUIRED COMPONENTS Core Gui Widgets
OPTIONAL_COMPONENTS PrintSupport
)

在notepad.cpp中,我们声明了一个QPrinter对象printDev:

void Notepad::print()
{
#if defined(QT_PRINTSUPPORT_LIB) && QT_CONFIG(printer)
QPrinter printDev;
#if QT_CONFIG(printdialog)
QPrintDialog dialog(&printDev, this);
if (dialog.exec() == QDialog::Rejected)
return;
#endif // QT_CONFIG(printdialog)
ui->textEdit->print(&printDev);
#endif // QT_CONFIG(printer)
}

我们启动一个打印机对话框,并将选中的打印机存储在对象printDev中。如果单击Cancel并且没有选择打印机,则方法返回。实际的打印机命令由ui->textEdit->print给出,并以QPrinter对象作为参数。

选择字体
cpp 复制代码
void Notepad::selectFont()
{
bool fontSelected;
QFont font = QFontDialog::getFont(&fontSelected, this);
if (fontSelected)
ui->textEdit->setFont(font);
}

我们声明了一个布尔值,指示是否使用QFontDialog选择了一个字体。如果是这样,使用ui->textEdit->setFont(myfont)设置字体。

复制,剪切,粘贴,撤消和重做

如果您选择了一些文本,并希望将其复制到剪贴板,则调用ui->textEdit的适当方法,剪切、粘贴、撤消和重做也是如此。

下图显示了要使用的方法名。

从命令行构建和运行

要从命令行构建示例应用程序,请为其创建一个构建目录。切换到构建目录并运行qt-cmake来配置您的项目进行构建,如果项目配置成功,生成的文件能构建项目。

cpp 复制代码
md <build_directory>
cd <build_directory>
<qt_installation_directory>\bin\qt-cmake -GNinja <source_directory>
<generator>

这些命令在构建目录中创建一个可执行文件,CMake工具读取项目文件并生成如何构建应用程序的说明,然后生成器使用这些指令生成可执行的二进制文件。

例如,要在Windows上构建记事本示例,当使用Ninja作为生成器时,输入以下命令:

md notepad-build

cd notepad-build

C:\Qt\6.5.2\msvc2019_64\bin\qt-cmake -GNinja C:\Examples\notepad

ninja

如果不使用Ninja作为生成器,使用生成器独立的CMake命令来构建应用程序,替代Ninja:

cmake --build

Qt Widget组件推荐
  • QtitanRibbon - Ribbon UI组件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,QtitanRibbon致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart - Qt类图表组件:是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。
  • QtitanDataGrid - Qt网格组件:提供了一套完整的标准 QTableView 函数和传统组件无法实现的独特功能。使您能够将不同来源的各类数据加载到一个快速、灵活且功能强大的可编辑网格中,支持排序、分组、报告、创建带状列、拖放按钮和许多其他方便的功能。
  • QtitanDocking:允许您像 Visual Studio 一样为您的伟大应用程序配备可停靠面板和可停靠工具栏。黑色、白色、蓝色调色板完全支持 Visual Studio 2019 主题!
相关推荐
hahjee几秒前
Go编写的ANSI终端颜色和样式控制库在OpenHarmony PC上的完整适配实战
开发语言·后端·鸿蒙
拉姆哥的小屋10 分钟前
从400维向量到160000维矩阵:基于深度学习的火焰参数预测系统全解析
开发语言·人工智能·python·深度学习·线性代数·算法·矩阵
雨落在了我的手上11 分钟前
C语言入门(二十八):动态内存管理(2)
c语言·开发语言
矢鱼12 分钟前
python中对应c++容器的结构
开发语言·c++·python·算法
Doris89314 分钟前
【JS】JS进阶--编程思想、面向对象构造函数、原型、深浅拷贝、异常处理、this处理、防抖节流
开发语言·javascript·ecmascript
Clarence Liu16 分钟前
golang 剖析 sync包
开发语言·golang
柒儿吖17 分钟前
Perl在鸿蒙PC上的使用方法
开发语言·harmonyos·perl
qq_3106585120 分钟前
mediasoup源码走读(十一)——consumer
服务器·c++·音视频
m5655bj22 分钟前
使用 C# 设置 Word 段落对齐样式
开发语言·c#·word
埃伊蟹黄面23 分钟前
字符串算法精要与例题汇编
c++·算法·leetcode·字符串