问题标签 [qplaintextedit]

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 回答
1376 浏览

qt - QSyntaxHighlighter - 文本选择覆盖样式

我正在使用QPlainTextEditand制作自定义代码编辑器,QSyntaxHighlighter但遇到了一个小故障。即使在选择中,我也想保留语法突出显示。但是,选择的颜色(环境颜色)会覆盖由QSyntaxHighlighterhtml 标记突出显示的文本的颜色。字体系列等其他属性被保留。


例子:

无选择: 选择:(                                    我要绿色和黑色)
未选中      已选中
HelloWorld!


我还尝试将样式表设置为:

结果:

在此处输入图像描述
背景颜色覆盖了文本,并且文本颜色alpha = 0不可见。我这样做只是为了排除语法颜色在selection-color. 它实际上被 覆盖selection-background-color
编辑:不,如果我也设置selection-background-colorrgba(0, 0, 0, 0),则没有选择,并且该选择中没有文本。我看到的只是背景。


以下片段的方法使整个光标的行突出显示似乎是要走的路,但我基本上最终会重新实现所有选择机制......

有没有更简单的解决方案?

0 投票
0 回答
136 浏览

c++ - QTextEdit - 实现即时报价、撇号和重音

大多数文本编辑器不会在您键入这些字符并将它们与下一个字符合并后立即显示它们。但是,我正在制作基于QPlainTextEdit英文字母的代码编辑器,所以我希望它是即时的。

我试图覆盖keyPressEvent()并发现当我按下shift时它会被调用,但是当我按下引号键时,它不会。现在我有一种预感,这种行为是在eventFilter.

我的问题:是否有一些不显眼的选项可以节省我的时间和代码,或者一个熟练的 Qt 程序员会采取的其他方式?

0 投票
1 回答
709 浏览

c++ - 以编程方式编辑 QPlainTextEdit 的内容

如何以编程方式编辑 QPlainTextEdit 的内容?

例如,我可能想要实现“查找和替换”,或者删除特定的文本行,或者插入一些文本。

简单的方法是完全重新加载内容:

但是,这似乎很浪费,而且我们还会丢失通过QPlainTextEdit::appendHtml().

从 QTextEdit 中删除最后一行中概述了另一种方法- 它们模拟用户编辑文本。答案适用于 QTextEdit,但我认为它也适用于 QPlainTextEdit:

我应该使用哪种方法来编辑内容?第二个有什么优势吗?

编辑:它甚至是一种有效的方法,还是只是一种黑客行为?

0 投票
1 回答
329 浏览

python - 如果涉及最后一行,QPlainTextEdit 中的缩进函数会导致段错误

我正在开发一个应该具有智能缩进/缩进行为的源代码编辑器。但是,我的 dedenting 方法似乎导致了分段错误。如果有人能找出原因,我会很高兴。

这是一个最小的例子:

要重新创建,请从第二行开始选择到第三行结束,然后按Shift+Tab消除并End触发段错误。

平台:

  • 在 Fedora (linux) 上运行
  • Python 2.7.8(默认,2014 年 11 月 10 日,08:19:18)[GCC 4.9.2 20141101 (Red Hat 4.9.2-1)]
  • PyQt 4.8.6(但它也发生在 PySide 中)

更新:

谢谢

0 投票
1 回答
2186 浏览

qt - PyQt:如何将光标重置为悬停的任何内容

非常小的问题:

我编写了一个带有基于 QPlainTextEdit 的文本编辑小部件的小型 IDE。当您将鼠标移到它上面时,光标会按预期变成插入符号/文本光标。如果您按 F5,窗口将被禁用并运行一个小脚本,然后重新启用窗口并为文本区域提供焦点。

不知何故,这会将光标从文本光标更改为指针。如果将光标移出文本区域然后再移回它,它会再次变为文本光标。

有没有办法以编程方式触发此刷新操作?


更新:这似乎与有一个进度条有关:

我已经使用 Python 2.7.8 和 PyQt4 版本 4.8.6 在 Linux (Fedora 21) 上对其进行了测试

重现步骤:

  1. 运行脚本
  2. 将鼠标光标放在文本区域上,它应该变成文本光标
  3. 按F5,等待进度条消失,让鼠标悬停在文本区域上,它应该变成一个指针

预期结果:一旦进度条离开光标,仍悬停在文本区域上,应恢复为文本光标

实际结果:光标一直是指针,直到它移开并移回文本区域

0 投票
1 回答
738 浏览

python - PySide QTextEdit 或 QPlainTextEdit 更新更快?

我现在正试图让我的 PC 上的 GUI 与每个套接字的服务器通信。

这是GUI的部分代码:

另一方面,服务器将一个接一个地发送数据,但有一定的间隔。这是模拟服务器的测试代码:

现在,除了在服务器中的整个 for 循环之后,GUI 只会显示接收到的消息的问题之外,一切正常。一旦我运行服务器和 GUI。服务器端以正确的速度将消息一一打印到屏幕上,但 GUI 没有响应,它不更新。直到程序结束,所有 7 行都在 GUI 端同时出现。我希望它们一一出现,以便稍后我可以在我的 PC 上使用此 GUI 检查服务器的状态。

谁能帮忙,非常感谢!

0 投票
1 回答
541 浏览

qt - 在 QTabWidget 的更改上显示星号

我正在创建一个多文件文本编辑器,使用标签来编辑不同的文件。为此,我使用了一个 QTabWidget,它包含 QPlainTextEdit 小部件,用户可以在其中编辑文本。如果用户在 QPlainTextEdit 中编辑文本,我想通过添加星号 (*) 来更改选项卡标题,以向他显示此文件中未保存的更改。

我目前的解决方案如下:

向 QTabWidget 添加一个新选项卡:

对内容更改做出反应的槽:

}

在我看来,使用 sender() 并不好,而且这样做需要付出太多的努力/代码,所以我觉得我做错了,或者有更好的方法来做到这一点。

有任何想法吗?

使用:

Win7专业版

Qt 5.3.2

0 投票
2 回答
118 浏览

c++ - 将引用 qplaintextedit 发送到 C++ 构造函数类

我需要向QPlainTextEdit我的 C++ 类发送引用,Analizador以便从我的类中添加行QPlainTextEdit。我将包含添加<QPlainTextEdit>到类中,QPlainTextEdit从图形界面创建并像那样调用构造函数

构造函数是:

编译器抛出错误:

mainwindow.cpp:23:错误:未定义对 `Analizador::Analizador(QPlainTextEdit*)' 的引用

所以我猜这个错误是因为我没有发送指向构造函数的指针,但我不知道如何访问QPlainTextEdit

PS。我是 Qt 和 C++ 的新手

0 投票
1 回答
347 浏览

pyqt - PyQt4 QTextCursor 更改可选字符

如何更改 QTextCursor 的可选字符,例如添加点?例如在 QPlainTextEdit 节中输入“MyClass”

将返回“MyClass”,但输入“MyClass”。将返回一个空的 Qstring!问题仍然存在,输入“MyClass.myMeth”只会返回“myMeth”,但我需要“MyClass.myMeth”:/ 谢谢

0 投票
0 回答
290 浏览

qt - 问题实现线与 Qt 一起向上移动

我已经在派生类中快速实现了移动队列QPlainTextEdit,但我有一个奇怪的问题。

该代码运行良好,但问题发生在撤消后:如果光标位于行首(并在下一行恢复),则光标不会恢复到先前的位置。如果光标在移动之前位于该行的任何其他位置,则可以正确恢复。

你能对此有所了解吗?谢谢!