问题标签 [qtextcursor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
19740 浏览

c++ - 在 QTextEdit 内移动光标

我有一个表格,上面有一个QTextEdit,叫做translationInput. 我正在尝试为用户提供编辑功能。

QTextEdit将包含 HTML 格式的文本。我有一组按钮,例如“粗体”、“斜体”等,它们应该将相应的标签添加到文档中。如果在没有选择文本时按下按钮,我只想插入一对标签,例如<b></b>. 如果选择了某些文本,我希望标签出现在它的左右两侧。

这工作正常。但是,我还希望在此之后将光标放在结束标记之前,这样用户就可以继续在新添加的标记内输入内容,而无需手动重新定位光标。默认情况下,光标出现新添加的文本之后(所以在我的例子中,就在结束标记之后)。

这是斜体按钮的代码:

但是,最后一行什么也没做,光标也没有移动,即使movePosition()返回了true,这意味着所有的操作都成功完成了。

我也尝试过使用QTextCursor::PreviousCharacter而不是这样做QTextCursor::Left,并尝试在将焦点返回到编辑之前和之后移动它,但没有任何改变。

所以问题是,如何将光标移动到我的QTextEdit?

0 投票
1 回答
406 浏览

python - Python/C++、PyQt4/Qt4:如何在 QTextTable 的单元格中插入多行文本

我正在尝试使用 PyQt4 创建一个 odt 文档。该文档涉及在单元格中插入多行文本。我的示例代码:

我希望“第 1 行”和“第 2 行”位于同一个单元格中,但由于换行,它们位于不同的单元格中。这也与上面的代码具有相同的效果:

0 投票
1 回答
2207 浏览

c++ - 如何在 qtextedit 中获取列号?

我可以在 QTextEdit 中获取光标的行号。但无法获取列号信息。(注意:我在获取行号信息时使用 QTextBlock。)是否有一种简单的方法来获取列号?我该怎么办?尽管我在这里这里阅读,但 QTextBlock 类仍然让我感到困惑。

0 投票
1 回答
1170 浏览

qt - QTextCursor 和 beginEditBlock

我在 QPlainTextEdit 中有一些文本,每行以 10 个空格开头:

然后,我选择几行,并在一个循环中从所有选定的行中删除前两个空格:

问题是上面的代码“损坏”了最后选择的行 - 好像它删除了某种行尾标记 - 当我想跳到最后一行的末尾时,光标移动到它下面的行,在第一个和第二个字符。即使选择在编辑后也没有正确显示 - 除了最后一行之外的所有行都将选择指示器扩展到右侧窗口边缘,最后一行的指示器仅与该行一样宽。

当我删除beginEditBlock()并且endEditBlock()一切正常。

请问,有谁知道为什么会这样?

0 投票
1 回答
5172 浏览

qt - Qt 忽略 QTextDocument 中的 CSS

这是我的代码的一小段,我不知道为什么,但 Qt 忽略了 css。

我正在使用 Qt 4.8。

0 投票
1 回答
3697 浏览

qt - QLineEdit 光标在 textChanged() 或 commitData() 之后移动到结尾

我有QTableView一列使用 aQLineEdit作为其编辑器委托,而其他列需要在用户输入时动态更新QLineEdit(例如,其中一列包含输入的文本的长度,QLineEdit它应该作为用户更新类型,而不是等待他们按 Enter 提交)。

我使用了这段代码:Qt:在编辑 QTableView 项目数据时发出信号,而不是在编辑完成后发出信号?这主要是有效的。它将QLineEdit textChanged()信号连接到编辑器的commitData()信号。

这段代码的问题在于,当用户键入时,QLineEdit的插入光标总是跳到末尾。如果您将文本附加到行尾,那很好。但是如果用户想在行的中间插入或编辑文本,每输入一个字母,文本插入光标就会跳到QLineEdit. 每次击键后,他们必须重新定位光标才能在中间完成插入/编辑。

如果我禁用映射器,则光标不会跳转,因此它不是编辑器委托所固有的;仅在使用上面链接的问题中的代码时才会发生。

我查看了代码QLineEdit textChanged()commitData()但我无法弄清楚是什么导致光标跳转到QLineEdit. 有任何想法吗?谢谢!

0 投票
1 回答
1230 浏览

qt - QTextCursor::insertImage ( const QImage & image, const QString & name = QString() ) 的分辨率问题

我想在 QTextDocument 中插入 QImage 并将其保存为 PDF 文件。为此,我使用 QTextCursor::insertImage ( const QImage & image, const QString & name = QString() ) 方法,但图像是像素化的。使用相同的图像和 QTextCursor::insertImage ( const QTextImageFormat & format, QTextFrameFormat::Position alignment ) 方法很好。

这是一个例子:

这是我的 QTextDocument 中的 QTextImageFormat 插入和 QImage 插入之间的区别的屏幕截图。 结果文件 该图像与上述代码不完全对应。

谢谢

0 投票
1 回答
1126 浏览

qt - 我如何在 QWebView Editable 中获得 textcursor 的位置

II 有一个可编辑的 QWebView,并想获得 TextCursor 的位置(QPoint)。我搜索但只能找到光标(鼠标指针)的位置 webview-> cursor.pos(); 而这个职位不是我想要的。

有人有什么建议吗?

谢谢!

0 投票
0 回答
183 浏览

python - setBold(True) 仅在 textcursor 未移动时才有效,为什么?

我想将 selectedPart 的文本设置为粗体。我想根据角色的格式来做到这一点。使用我的代码,我可以检测到该格式,但设置粗体不起作用。如果我取消注释那 2 行注释,并注释下面的所有行(当然接受最后 5 行),我可以将代码设置为粗体。

这段代码完全可以工作,你可以测试一下,也许你有一个想法。您通过鼠标选择文本,然后使用 CTRL+B 调用 set-bold-method。

(我对此的想法:问题似乎取决于我移动 QTextCursor 以获取有关选择另一端的字符格式的信息这一事实。也许有一种更简单的方法来获取该信息,但我只是想通了这个。但我不明白为什么 textCursor 的移动不好,因为它似乎仍然有一个有效的选择,我假设 font=self.currentFont() 仍然可以工作。)

0 投票
0 回答
182 浏览

python - 为 textCursor 设置锚点以匹配正则表达式

使用正则表达式,我发现了文本中的所有链接。现在我怎样才能只为自己选择链接并插入一个锚点?

我已经使用过:

这具有将整个文本作为链接制作的问题。那是因为我选择了整个文档,我知道。但是,我怎样才能自动选择找到的链接呢?例如,如果文本是

我希望自动选择 www.google.com 和 www.stackoverflow.com。我已经通过正则表达式找到了这两个字符串。

编辑:

我找到了一种选择链接的方法。起初我得到一个链接的索引

甚至更好:

然后我还有另外两个问题:

  • 该链接仅在我将文本重新设置为 html 后显示

  • 如果我点击链接,什么都不会发生,但每个文本都会被清除。

在phase5(html-editor)中输入html,似乎链接只有在它们像“a href="http://..:"而不是“a href="www.."时才有效。你有什么建议吗?