Qt控件_QTextEdit

本文详细介绍了在QT框架中使用QString与QTextEdit的基本操作,包括如何将vector容器中的数据转换为QString类型,并利用arg()函数填充字符串,最终在QTextEdit中显示。同时,阐述了如何清空vector容器的内容而不回收空间。
部署运行你感兴趣的模型镜像

setText()中只能填写QString类型

// 函数头应首先包括

#include <QString>

vector< cv::DMatch > matches;
QString str_match;

// 转换为字符串形式在QTextEdit中显示,通过arg()函数

str_match= QString("%1").arg(matches.size());

matches.clear();// 使用完vector容器中的内容后,通过clear()清空其中元素,但不回收空间

ui->match_ORB->setText( str_match);

参考:https://www.cnblogs.com/xiangwengao/archive/2012/03/23/2413257.html

备注:
QString的arg()方法用于填充字符串中的%1,%2…为给定的参数,如
QString m = tr("%1:%2:%3").arg(“12”).arg(“60”).arg(“60”); // m = 12:60:60

cv::solvePnPRansac( pts_obj, pts_img, cameraMatrix, cv::Mat(), rvec, tvec, false, 100, 1.0, 100, inliers);

参考:
https://wiki.qt.io/How_to_Use_QTextEdit
https://blog.youkuaiyun.com/EI__Nino/article/details/7297791

您可能感兴趣的与本文相关的镜像

Qwen3-8B

Qwen3-8B

文本生成
Qwen3

Qwen3 是 Qwen 系列中的最新一代大型语言模型,提供了一整套密集型和专家混合(MoE)模型。基于广泛的训练,Qwen3 在推理、指令执行、代理能力和多语言支持方面取得了突破性进展

找到的 QTextEdit 数量: 11 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 安装事件过滤器 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 安装事件过滤器 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:14 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:17 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:26 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:74 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:78 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:24 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:13 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:10 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:11 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:10 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:110 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:11 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:10 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:207 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:8 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:207 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:2 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:9 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:11 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:8 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:23 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:207 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:9 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:8 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:207 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:2 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:10 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:9 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:11 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:8 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:12 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:23 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:25 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:9 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B310> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B550> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B790> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385B9D0> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BC10> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x000001599385BE50> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938600D0> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860310> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860550> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x0000015993860790> 收到了事件类型:18 控件 <PyQt5.QtWidgets.QTextEdit object at 0x00000159938609D0> 收到了事件类型:18
08-12
你提供的日志中有一个关键信息: ``` 控件 <PyQt5.QtWidgets.QTextEdit object at 0x...> 收到了事件类型:21 ``` 其中 **21 是 `QEvent.ContextMenu` 的数值**,说明你的程序确实接收到了右键菜单事件。 --- ## ✅ 问题确认 你的程序已经: - ✅ 成功为 11 个 `QTextEdit` 控件安装了事件过滤器; - ✅ 成功接收到了 `QEvent.ContextMenu`(类型 21)事件; - ❌ 但是你没有看到 `print("拦截到右键菜单事件!")`,说明事件过滤器没有正确进入判断逻辑。 --- ## ❗根本原因分析 你目前的判断语句是: ```python if isinstance(obj, QTextEdit) and event.type() == event.ContextMenu: ``` 但是: - `event.ContextMenu` 是 `obj` 的属性,不是全局的; - 正确做法是使用 `QEvent.ContextMenu`。 --- ## ✅ 解决方案 ### ✅ 1. 导入 `QEvent` ```python from PyQt5.QtCore import QEvent ``` ### ✅ 2. 修改 `eventFilter` 中的判断条件 ```python def eventFilter(self, obj, event): if isinstance(obj, QTextEdit) and event.type() == QEvent.ContextMenu: print("✅ 拦截到右键菜单事件!") self.show_custom_context_menu(obj, event) return True return super().eventFilter(obj, event) ``` --- ## ✅ 示例代码片段(关键部分) ```python from PyQt5.QtWidgets import QApplication, QMainWindow, QTextEdit, QMenu from PyQt5.QtCore import QEvent # ✅ 使用全名 QEvent import sys class MyWindow(QMainWindow): def __init__(self): super().__init__() self.text_edit = QTextEdit() self.setCentralWidget(self.text_edit) # 为所有 QTextEdit 安装事件过滤器 for widget in self.findChildren(QTextEdit): widget.installEventFilter(self) print(f"已为控件 {widget} 安装事件过滤器") def eventFilter(self, obj, event): if isinstance(obj, QTextEdit) and event.type() == QEvent.ContextMenu: print("✅ 拦截到右键菜单事件!") self.show_custom_context_menu(obj, event) return True return super().eventFilter(obj, event) def show_custom_context_menu(self, text_edit, event): menu = QMenu(self) paste_action = menu.addAction("只粘贴文本") action = menu.exec_(event.globalPos()) if action == paste_action: self.paste_plain_text(text_edit) def paste_plain_text(self, widget): clipboard = QApplication.clipboard() if clipboard.mimeData().hasText(): plain_text = clipboard.text() cursor = widget.textCursor() char_format = widget.currentCharFormat() cursor.insertText(plain_text, char_format) if __name__ == '__main__': app = QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_()) ``` --- ## ✅ 你可能看到的输出(右键点击 QTextEdit) ``` 已为控件 <PyQt5.QtWidgets.QTextEdit object at 0x...> 安装事件过滤器 ✅ 拦截到右键菜单事件! ``` --- ## ✅ 总结 | 问题 | 原因 | 解决方法 | |------|------|----------| | `eventFilter` 没有进入判断 | 使用了错误的事件类型常量 | 使用 `QEvent.ContextMenu` | --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值