QT C++ QTableWidget(Item) 部分斜体(强调)文本
QT C++ QTableWidget(Item) partially italicize (emphasize) text
我正在使用QTableWidget(Item(来呈现一些数据。为此,我需要将文本的某些部分设置为斜体或粗体。问题:我不想将整个单元格/框斜体化,而只想将单元格中的部分文本斜体化。
想法
:使用 QTableWidgetItem 引用相应的单元格并尝试修改样式(例如 setFont(font((。但这种操作似乎总是改变整个细胞?
我还发现这对我的QTableWidget问题没有帮助。
想
:拥有一个QTableWidget,例如2行和包含单元格的列
,例如:Exa mple 单元格文本
(像Exa<b>mple</b> Cell <i>Text</i>
这样的尼斯符号只是一个次要方面(
注意:示例应为一个单词。
已解决
我没有看到树木的木头。多亏了萨尔瓦多·阿万佐,他是完全正确的。
所有 Item Widget 类都提供在每个单元格中呈现/绘制自定义内容的功能。
QTableWidget
提供setCellWidget(.. QWidget..)
; QListWidget
和QTreeWidget
提供setItemWidget(..QWidget..)
。因此,您可以使用 QWidget 的任何子类(所有 ui 对象的基础(来绘制自定义内容。为了达到我的目的,我需要能够设置自定义的部分强调/斜体文本。QWidget用于绘画文本的引用子类是QLabel(它本身也是QPainDevice的一个子类(。调用 QWidget 时会绘制 QWidget 的 QWidget/子类paintEvent(..)
(QLabel 重新实现了它(。QLabel还支持富文本功能(默认使用标志(,例如您可以使用<b>foo</b>
来获取foo。
所以这完全适合我的问题,我现在将使用此解决方案。
预测更好的结构化解决方案
上述解决方案的不吸引人的方面是,设计和数据完全混合在一起。如果您设置了引用交互标签,则可以在 QLabel 中编辑文本。但是你总是需要使用QLabel来获取文本。当在也使用 QLabel 的单元格中另外设置 QTableWidgetItem 时,它们会覆盖得很丑陋。所以人们可以使用QTableView。这是一个链接。
- std::具有相同基类的类的变体
- 访问者访问变体并返回不同类型时出错
- 用C++在单独的头文件中完成函数体
- 我应该使用什么来代替void作为变体中的替代类型之一
- 将shared_ptr移动到<StructA>shared_ptr<变体<结构A、结构 B>>
- 如何比较自定义类的std::变体
- 是否有C++编译器选项允许激进地删除所有函数调用,并将参数传递给具有空体的函数
- 通过网络、跨平台传递std::变体是否安全
- 我可以在 C++ 中的函数体之外进行操作吗?
- 对于循环变体比较
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 根据用户回答声明"Players"。用户选择玩家数量。播放器是结构体
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- 标准::变体的赋值运算符
- 如何@ref同一方法的不同变体?
- 如何在 Windows 中将 C/C++ 控制台文本设置为粗体和斜体
- 使用windows窗体在richtextbox中设置斜体的示例
- 是否可以将QTreeWidgetItem的文本部分斜体
- Visual Studio 11斜体参数
- QT C++ QTableWidget(Item) 部分斜体(强调)文本