问题标签 [qscintilla]

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 投票
2 回答
412 浏览

python - 如何分配 QScintilla 快捷方式

我正在尝试为我的编辑器实现快捷方式,但到目前为止我还没有取得任何成功。

我想覆盖一些默认的 QScintilla 快捷方式。我已阅读此答案,但我不确定这是否有助于解决我的问题。

我还阅读了Scintilla ( SCI_ASSIGNCMDKEY) 文档,但我不知道我应该如何以 Python 的方式使用它。

说清楚:

  1. 我想覆盖 QScintilla 快捷方式Ctrl+L并使用我的自定义解决方案(将其分配给我的一个功能)。

  2. 我想将命令分配给SCI_LINEDELETE快捷方式Ctrl+D

这是我的想法:

0 投票
1 回答
402 浏览

python - 如何在 QScintilla 中实现 SublimeText 逐级功能

我正在尝试fold_by_level在 QScintilla 组件上实现 SublimeText3 功能,但我不太清楚如何做到这一点,到目前为止我已经提出了以下代码:

我关注的文档是https://www.scintilla.org/ScintillaDoc.html#Foldinghttp://pyqt.sourceforge.net/Docs/QScintilla2/classQsciScintilla.html

正如我所说,该fold_by_level功能旨在与 SublimeText 完全一样,但我不确定 ST 的功能实现细节。无论如何,让我在 SublimeText 上测试一些基本序列之后发布一些屏幕截图,这可以澄清我在这里想要实现的目标:

序列1: {ctrl+k, ctrl+5}, {ctrl+k, ctrl+j} {ctrl+k, ctrl+4}, {ctrl+k, ctrl+j} {ctrl+k, ctrl+3}, {ctrl+k, ctrl+j} {ctrl+k, ctrl+2}, {ctrl+k, ctrl+j} {ctrl+k, ctrl+1}, {ctrl+k, ctrl+j}

在此处输入图像描述

序列2: {ctrl+k, ctrl+5}, {ctrl+k, ctrl+4}, {ctrl+k, ctrl+3}, {ctrl+k, ctrl+2}, {ctrl+k, ctrl+1}

在此处输入图像描述

我确信有更多关于 SublimeText 行为的内部细节,但如果我的示例在测试序列后表现得与在这些镜头上发布的完全一样,你可以说该功能已经变得非常方便使用。

0 投票
3 回答
934 浏览

python - 如何在 QScintilla 中实现与多项选择一起使用的评论功能?

我正在尝试在 QScintilla 中实现一个切换评论功能,该功能适用​​于多项选择。不幸的是,我不太清楚该怎么做,到目前为止我已经想出了这个代码:

相关的 Qscintilla 文档住在这里:

现在这个功能只支持一个单一的选择/光标,评论的方式真的很难看。正如您在代码中看到的,如果您在按住鼠标的同时按 ctrl,您将能够创建多个光标/选择。

不过,我现在不知道如何实现几件事:

1)我希望评论对齐,也就是说,它们应该从相同的缩进级别开始。现有功能现在会产生丑陋的未对齐评论,我称之为“对齐良好”的评论示例:

在此处输入图像描述

2) 现在只考虑一个光标/选择。如何循环游标/选择以应用 toggle_selection 功能?

在此处输入图像描述

在此处输入图像描述

3)我猜如果你循环选择结果会比在特定行中有偶数个游标不会评论该行(评论,取消评论),例如,像这样:

在此处输入图像描述

4) 特定行中的奇数个游标会影响该行,因为(注释、取消注释、注释),例如,如下所示:

在此处输入图像描述

5)如果你循环游标/选择,你最终会产生像下面这样的输出。

在此处输入图像描述

编辑:第一稿

EDIT2:我发现我正在尝试实现的此功能的源代码可在 SublimeText Default.sublime-package (zip 文件)、comments.py上找到。该代码不仅支持普通注释//,还支持块注释/* ... */。主要问题是将代码移植到 QScintilla 似乎非常棘手:/

0 投票
1 回答
723 浏览

python - 如何将折叠添加到 QsciLexerCustom 子类?

考虑这个片段:

要运行上面的 mcve,你只需要运行pip install lark-parser PyQt5 QScintilla

我试图弄清楚如何修改LexerJson,以便符号[ ] { }支持折叠。当使用诸如qscilexercpp.cpp之类的现有类时,折叠行为是免费提供给您的,例如,您只需执行以下操作:

折叠可以免费工作......但是当我在发布的 mcve 中使用自定义词法分析器时,我猜你必须自己实现该行为,不幸的是我不知道该怎么做。

所以,这基本上是一个问题,你如何在 QsciLexerCustom 子类上实现折叠?

0 投票
2 回答
565 浏览

python - 当我安装 eric6 时,出现以下错误:请安装 QScintilla2 及其 PyQt5/PyQt4 包装器

安装eric6的时候提示如下问题:

但是我已经通过“pip install QScintilla”安装了 QScintilla,那么接下来我该怎么做呢?

我的操作系统是Windows。

0 投票
1 回答
117 浏览

python - 使用 QsciScintilla.findNext 向后搜索未按预期工作

如果我搜索字母x转发(按钮Next),一切正常,但只要我改变方向(按钮Previous),就会发生这种情况:

  • QsciScintilla.findFirst()不移动选择。即,第一次按下按钮Previous不做任何事情;
  • QsciScintilla.findNext()以 2 为步长移动,从而跳过一个字符。

ATM 我正在​​考虑将查找操作的逻辑从 C++ 转换为 Python,从而可能解决问题,但很高兴知道我犯了一些新手错误,从而避免了所有额外的工作......

这是代码:

0 投票
1 回答
205 浏览

python - QScintilla2 未安装 DLL 加载失败

我尝试运行一个 Python 脚本,它是 PyForms 的一个演示,它使用 PyQt5、SIP 和显然是 QScintilla。

走到这一步我遇到了很多麻烦。一个障碍是获得合适的 PyQt5-Version 与 SIP 相结合。现在 Pydev(Eclipse) 提示我以下内容:

QScintilla2 未安装
DLL 加载失败:Die angegebene Prozedur wurde nicht gefunden。

(翻译 DE -> EN:找不到给定的程序)

QScintilla2 已安装,我多次尝试以不同版本重新安装。我不知道如何用 PIP 解决这个问题。

当前版本Windows 8如下:

Python:3.7
PyForms:3.0.0
AnyQt:0.0.8
PyQt5:5.10.1
PyQt5-sip:4.19.12
QScintilla:
2.10.7 sip:4.19.8

对于想知道我之前修复 PyQt5/sip 障碍的人:Stackoverflow | 来自用户ntaro的回答

如果您需要更多信息,请告诉我!

0 投票
1 回答
72 浏览

python - *.api 文件:它们属于哪个生态系统?

这些文件与python代码分析有关。可能不止于此。一个例子:

https://github.com/fastogt/qscintilla/blob/master/qsci/api/python/Python-3.4.api

这些文件要么属于 Python,要么属于 Qt 生态系统。这个问题本来是微不足道的;不幸的是,不愉快的缩写完全禁用了搜索。

这些文件是什么? api 在这个特定的上下文中意味着什么?

0 投票
2 回答
407 浏览

c++ - QScintilla 如何在 textEdit 小部件中连续获取光标位置?

我正在使用 Qt5 和 QScintilla 作为框架,使用 C++ 编写源代码编辑器。在这个项目中,我想不断地显示文本光标的行和列(光标位置),所以我需要一个在文本光标移动时发出的信号。根据 QScintilla 文档, cursorPositionChanged(int line, int index) 每当光标移动时都会发出想要的信号,所以我想这一定是我需要的方法?这是我到目前为止所做的:

我的代码编译并且编辑器窗口按需要显示,但不幸的是,我收到了警告:

有人可以为我提供一个 QScintilla C++ 或 Python 示例,展示如何连续获取和显示当前光标位置吗?

完整的源代码托管在这里: https ://github.com/mbergmann-sh/qAmigaED

感谢您的任何提示!

0 投票
1 回答
361 浏览

c++ - QScintilla:如何将用户上下文菜单添加到 textEdit?(C++)

我正在努力告诉作为我的 MainWindow 应用程序的主要小部件的 QScitilla textEdit 接受在右键单击鼠标时显示个性化的上下文菜单。

如果与 QScintilla 替代方案一起使用,如果我使用标准 Qt5 textEdit 会失败。我尝试通过一些操作定义用户菜单:

对 QContextMenuEvent 做出反应,但仅当我右键单击 MainWindow 的元素而不是 QScintilla textEdit 时才会显示菜单。当我在 textEdit 中进行操作时,只显示标准的剪切/复制/粘贴菜单。

如何为 QScintilla textEdit 实现它?