Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
更改QTextEdit';s断线算法?_Qt_Qtextedit - Fatal编程技术网

更改QTextEdit';s断线算法?

更改QTextEdit';s断线算法?,qt,qtextedit,Qt,Qtextedit,我想更改QTextEdit的换行算法,以便以更好的方式包装我显示的非英语文本(实际上是代码)。Qt中“单词”的定义可能非常适合人类语言,但它不适合代码,因此长代码行最终会被包装在非常糟糕的地方。例如,这一行代码: – (void)setRecombinationRate(numeric rates, [Ni ends = NULL], [string$ sex = "*"]) 在一个狭窄的窗口中,由QTextEdit包装为: – (void)setRecombinationRate(nume

我想更改QTextEdit的换行算法,以便以更好的方式包装我显示的非英语文本(实际上是代码)。Qt中“单词”的定义可能非常适合人类语言,但它不适合代码,因此长代码行最终会被包装在非常糟糕的地方。例如,这一行代码:

– (void)setRecombinationRate(numeric rates, [Ni ends = NULL], [string$ sex = "*"])
在一个狭窄的窗口中,由QTextEdit包装为:

–
 (void)setRecombinationRate(numeri
c rates, [Ni ends = NULL], [string
$ sex = "*"])
我想定制断线算法,以实现更像这样的功能:

– (void)setRecombinationRate(
numeric rates, [Ni ends = NULL], 
[string$ sex = "*"])
我在Cocoa中也做了类似的事情,在
NSTextStorage
的子类中重写了
-lineBreakBeforeIndex:withinRange:
;我想知道的是,在Qt中是否有类似的地方可以覆盖默认行为


请注意,我知道您可以自定义Qt的布局,以便文本在
QTextEdit
中围绕障碍物流动;这不是我要问的。

当然,您可以
QTextEdit::setWordWrapMode(qtexOption::WordWrap)
避免在单词中间换行。但是我看不到一种简单的方式来选择在,比如说,
)进行换行。我认为您正在寻找一个自定义或类似的东西。例如,QtCreator像QTextEdit一样(使用WordWrap模式)进行换行。但是我看到SublimateText将在“(“Rate(numeric)”(在“Rate(numeric)”之后中断,然后在前导“-”之后换行,这很好。FWIW,我跟踪了默认的换行符。这不完全是我想要复制的。希望有一种更简单的方法来设置“首选换行符”,但我找不到它。
QTextEdit::setWordWrapMode(QTextOption::WordWrap)
最终并不是对我的应用程序的改进;它允许文本比视图更宽,以避免打破一个单词(添加一个水平滚动条),这不是我想要的,所以我坚持默认的
QTextOption::WrapAtWordBoundaryOrAnywhere
。哇,是的,你链接到的代码是硬核,而方法是
layout\u helper()
,无论如何都是私有的。哦,好吧。谢谢你的研究。看起来这现在在Qt内几乎不可能做到。当然,你可以
QTextEdit::setWordWrapMode(QTextOption::WordWrap)
来避免在单词中间换行。但是我看不到一种简单的方式来选择在,比如说,
。我想您正在查看一个自定义或类似的东西。例如,QtCreator会像QTextEdit一样断开(使用WordWrap模式)。但我看到SublimateText将在“(“Rate(numeric)”之后断开,然后在前导“-”之后的空格上换行,这很好。FWIW,我跟踪了默认的换行符。这不完全是我想要复制的。希望有一种更简单的方法来设置“首选换行符”,但我找不到它。
QTextEdit::setWordWrapMode(QTextOption::WordWrap)
最终并不是对我的应用程序的改进;它允许文本比视图更宽,以避免打破一个单词(添加一个水平滚动条),这不是我想要的,所以我坚持默认的
QTExtraption::WrapAtWordBoundaryOrAnywhere
。哇,是的,你链接到的代码是硬核的,而且这个方法,
layout\u helper()
,无论如何都是私有的。哦,好吧,谢谢你的研究。看起来现在在Qt中这几乎是不可能做到的。