QT学习笔记二

这篇博客介绍了Qt中的布局管理,包括基本布局管理器、栅格布局和表单布局,详细阐述了如何设置部件大小、使用分裂器以及设置伙伴。此外,还探讨了应用程序主窗口,特别是富文本处理,如富文本文档结构、文本块、表格、列表、图片以及语法高亮和HTML支持。最后提到了拖放操作和打印文档的功能。
摘要由CSDN通过智能技术生成

布局管理

布局管理器

Qt中主要提供了QLayout类及其子类来作为布局管理器
布局管理器
当部件加入到一个布局管理器中,然后这个布局管理器再放到一个窗口部件上时,这个布局管理器以及它包含的所有部件都会自动重新定义自己的父对象(parent)为这个窗口部件。

基本布局管理器

QBoxLayout类可以使子部件在水平方向或者垂直方向排成一列,它将所有的空间分成一行盒子,然后将每个部件放入一个盒子中。
它有两个子类QHBoxLayout水平布局管理器和QVBoxLayout垂直布局管理器。

栅格布局管理器

QGridLayout类使得部件在网格中进行布局,它将所有的空间分隔成一些行和列,行和列的交叉处就形成了单元格,然后将部件放入一个确定的单元格中。

表单布局管理器

QFormLayout类用来管理表单的输入部件和与它们相关的标签。窗体布局管理器将它的子部件分为两列,左边是一些标签,右边是一些输入部件,比如行编辑器或者数字选择框等。

设置部件大小

凡是继承自QWidget的类都有这两个属性:大小提示(sizeHint)和最小大小提示(minimumSizeHint)。

分裂器

QSplitter类提供了一个分裂器部件,包含在它里面的部件,默认是可以随着分裂器的大小变化而进行相应大小变化的。

设置伙伴

为了方便定位,QLabel提供了一个有用的机制,那就是提供了助记符来设置键盘焦点到对应的部件上,而这个部件就叫做这个QLabel的伙伴(buddy)。

应用程序主窗口

在Qt中提供了以QMainWindow类为核心的主窗口框架,它包含了众多相关的类

主窗口框架

主窗口框架
QAction是一种命令动作,它可以同时放在菜单和工具栏中。一个QAction动作包含了一个图标,一个菜单显示文本,一个快捷键,一个状态栏显示文本,一个“What’s This?”显示文本和一个工具提示文本。这些都可以在构建QAction类对象时在构造函数中指定。

// 添加编辑菜单
QMenu *editMenu = ui->menuBar->addMenu(tr("编辑(&E)"));

// 添加打开菜单
 QAction *action_Open = editMenu->addAction(             
QIcon(“../images/open.png"),tr("打开文件(&O)"));

// 设置快捷键
action_Open->setShortcut(QKeySequence("Ctrl+O"));       

// 在工具栏中添加动作
ui->mainToolBar->addAction(action_Open);                

富文本处理

富文本(Rich Text)或者叫做富文本格式,简单来说就是在文档中可以使用多种格式,比如字体颜色、图片和表格等等。它是与纯文本(Plain Text)相对而言的,比如Windows上的记事本就是纯文本编辑器,而Word就是富文本编辑器。

富文本文档结构

因为QTextEdit类就是一个富文本编辑器,所以在构建QTextEdit类的对象时就已经构建了一个QTextDocument类对象和一个QTextCursor类对象,只需调用它们进行相应的操作即可。

富文本
一个空的文档包含了一个根框架(Root frame),这个根框架又包含了一个空的文本块(Block)。框架将一个文档分为多个部分,在根框架里可以再添加文本块、子框架和表格等。
文档

QTextDocument *document = ui->textEdit->document(); //获取文档对象

QTextFrame *rootFrame = document->rootFrame();      // 获取根框架

QTextFrameFormat format;                            // 创建框架格式

format.setBorderBrush(Qt::red);                     // 边界颜色

format.setBorder(3);                                // 边界宽度

rootFrame->setFrameFormat(format);                  // 框架使用格式

文本块

一个文本块QTextBlock可以看做是一个段落,但是它不能使用回车换行,因为一个回车换行就表示创建一个新的文本块。
文本块的格式由QTextBlockFormat类来处理,它主要涉及对齐方式,文本块四周的边白,缩进等内容。
文本块中的文本内容的格式,比如字体大小、加粗、下划线等内容,则由QTextCharFormat类来设置。

表格、列表和图片

QTextTableFormat、QTextListFormat、QTextImageFormat

语法高亮

继承QSyntaxHighlighter类,重新实现highlightBlock()函数

HTML

拖放操作

打印文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值