如何在qt4的文本编辑框中创建多个选择?

Posted

技术标签:

【中文标题】如何在qt4的文本编辑框中创建多个选择?【英文标题】:how to create multiple selections in text edit box in qt4? 【发布时间】:2010-04-04 10:55:44 【问题描述】:

Qt3.3 过去通过调用 setSelection() 函数并指定不同的选择 id (selNum 允许在 QTextEdit 小部件中进行多项选择strong>) 作为该函数中的最后一个参数。

在 Qt4 中,要创建一个选择,我通过创建一个 QTextCursor 对象并调用 setPosition()movePosition() 来实现方法。我能够创建单个文本选择没有问题。但是,我无法找到创建多个选择的方法。 Qt4 中的方法没有允许您设置选择 id 的参数,我也无法在 QTextCursorQTextEdit 中找到任何其他看起来可能允许的函数我这样做。

此功能是否已从 Qt4 中完全删除?或者有没有新的不同的方法?

谢谢。

罗尼

【问题讨论】:

【参考方案1】:

我现在意识到的解决方案实际上非常简单。

要以图形方式显示所有各种选择(单独的 QTextCursor 对象),而不是 调用 setTextCursor() 方法每个选择的 QTextEdit 小部件,我通过为每个 QTextCursor 调用 setCharFormat() 方法来更改每个文本部分的背景颜色对象。

【讨论】:

【参考方案2】:

如何创建多个光标 (QTextCursor),每个光标选择文本的不同部分。这对你有用吗?

【讨论】:

我试过了,但它并没有给我想要的东西。但也许我做错了。我尝试创建几个 QTextCursor 对象,每个对象都能够存储自己单独的选择信息。但是在使用 QTextEdit 小部件的 setTextCursor() 方法时,为了使它们可见,它一次只显示一个选择。一旦我用不同的 QTextCursor 对象作为参数再次调用它,它就会删除旧的选择并用新的选择替换它。是否有另一个类似于 setTextCursor() 的函数可以解决问题? @Ronny:你想做什么 - 向用户显示所有选择?还是复制所有的文字? 我想直观地显示选择。现在我意识到答案实际上是多么容易,而我没有想到它是多么愚蠢。我所要做的就是更改这些文本部分的背景颜色。 @Ronny:是的。我认为 Qt 在 v4 中在概念上改变了它的工作方式,所以现在这些东西有不同的解决方案。如果你想复制所有文本,你可以从每个 QTextCursor 轮流完成

以上是关于如何在qt4的文本编辑框中创建多个选择?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用集合编辑器窗口在 GroupBox 中创建文本框?

如何在HTML / Javascript中创建可编辑的组合框?

如何在 Jetpack Compose 中创建编辑器?

MS Access 2010 上的可编辑文本框 - 行为正确吗?

UIAlertController中的多行可编辑文本UITextview?

UIAlertController 内的多行可编辑文本 UITextview?