问题标签 [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.
c++ - 使用 QScintilla 构建项目发布
我有使用 Qt Framework 和QScintilla2用 C++ 编写的项目。由于链接器错误,我无法构建 Release。我正在使用 Visual Studio 2013。
错误:
1>codeditor.obj : 错误 LNK2019: 无法解析的外部符号“public: static struct QMetaObject const QsciScintillaBase::staticMetaObject” (?staticMetaObject@QsciScintillaBase@@2UQMetaObject@@B) 在函数“public: static class QMetaObject::Connection __cdecl QObject”中引用::connect(class QsciScintillaBase const ,void (__thiscall QsciScintillaBase:: )(int,int,char const *,int,int,int,int,int,int,int),class CodeEditor const ,void (__thiscall CodeEditor::)(int,int,char const *,int,int,int,int,int,int,int),枚举 Qt::ConnectionType)" (??$connect@P8QsciScintillaBase@@AEXHHPBDHHHHHHHH@ZP8CodeEditor@@AEXHH0HHHHHHH@Z@ QObject@@SA?AVConnection@QMetaObject@@PBVQsciScintillaBase@@P83@AEXHHPBDHHHHHHH@ZPBVCodeEditor@@P84@AEXHH1HHHHHHH@ZW4ConnectionType@Qt@@@Z) 1>codeditor.obj:错误 LNK2019:未解析的外部符号“public:静态结构 QMetaObject const QsciScintilla::staticMetaObject" (?staticMetaObject@QsciScintilla@@2UQMetaObject@@B) 在函数 "public: static class QMetaObject::Connection __cdecl QObject::connect) 中引用,void (__thiscall CodeEditor::*)(int,int, class QFlags)>(class QsciScintilla const ,void (__thiscall QsciScintilla:: )(int,int,class QFlags),class CodeEditor const ,void (__thiscall CodeEditor::)(int,int,class QFlags),enum Qt::ConnectionType)" (??$connect@P8QsciScintilla@@AEXHHV?$QFlags@W4KeyboardModifier@Qt@@@@@ZP8CodeEditor@@AEXHH0@Z@QObject@@SA ?AVConnection@QMetaObject@@PBVQsciScintilla@@P83@AEXHHV?$QFlags@W4KeyboardModifier@Qt@@@@@ZPBVCodeEditor@@P85@AEXHH1@ZW4ConnectionType@Qt@@@Z) 1>release\JSD-V8-QT.exe : 致命错误 LNK1120: 2 未解决的外部
c++ - 如何使用 QScintilla 和 C++ 使用自动完成功能?
我想创建一个源代码编辑器,我需要创建一个自动完成功能。我一直在寻找示例代码,但我什么也没找到。:( 提前致谢。
python - qscintilla python绑定问题
尝试遵循 QSCintilla 指令重新绑定 PyQT5
但是当我运行以下命令时,它抱怨没有安装 PyQt5
如果我运行 brew info 我可以看到依赖是好的
这是 OSX 10.12.3 仅供参考,我很高兴承认我根本不是这方面的专家。
我正在尝试让 QScintilla 正常工作,这样我就可以从 Pycom 安装 PyMakr 并正常工作
还有其他人遇到过类似的问题吗?
回答巴里斯评论
pip3 install QScintilla 返回
pip3 安装 pyqt5
pyqt - PyQt5-5.8.2 在 Windows 10 上不起作用
我需要安装qscintilla
. 我为此使用 pip:
PyQt5自动升级到最新版本'5.8.2',sip升级到'4.19.2'。我想这与 qscintilla 的需求有关。也许最新版本的 qscintilla 需要最新的 PyQt 版本才能正常运行。
不幸的是,PyQt5-5.8.2 结合 sip-4.19.2 在 Windows 10 上不起作用。我收到以下错误:
我在 Windows 10 中检查了我的 PATH 变量,并找到了以下目录:C:\Anaconda3\Library\bin
. 我检查了那个文件夹,所有的 dll 都存在:Qt5Widgets.dll
、'Qt5Gui.dll`、......所以我简直不敢相信 Python 找不到它们。
我现在将介绍迄今为止我尝试过的事情。
1. 全新安装 Anaconda => 升级 PyQt5。
我已经从我的 PC 中完全删除了 Python,并从头开始安装 Anaconda:适用于 64 位 Windows 的 Python 3.6。
Anaconda 附带旧版本的 PyQt5。我检查这样的版本:
我只是升级我的 PyQt 版本,因为我知道 qscintilla 安装无论如何都会这样做。如果在升级 PyQt 之后(以及在安装 qscintilla 之前)出现问题,我可以排除可能由 qscintilla 安装引起的问题。所以我们开始:
不出所料,升级版的pyqt导致报错:
2. 安装 PyQt5-5.7.1 而不是 PyQt5-5.8.2。
我在这个页面上找到了来自 PyQt5-5.7.1 的轮文件:https
://pypi.python.org/pypi/PyQt5/5.7.1 我希望 qscintilla 也能在这个上工作。毕竟,这是一个相当新的版本。但首先,我想知道我是否正确安装了它,以及上面的错误是否已经消失。
不幸的是,错误仍然存在。
3. StackOverflow 的回答。
我已经检查了 StackOverflow 上的几篇文章,但没有一个帮助我。
这篇文章太旧了:PyQt5 : The DLL load failed : the specified module could not be found
这篇文章给出了一个可能的原因:“可能是因为 pyqt .pyd 文件与 python3.dll 链接,而不是 python3.6 dll。” 导入 PyQt5 时 DLL 加载失败。答案表明我应该使用旧版本的 PyQt5。我已经尝试过了(见上文),但它仍然失败。答案还建议从源代码构建 PyQt5。我也试过了,但是构建过程卡住了..
谁能帮我?或许你已经成功地将最新的 PyQt5-5.8.2 版本从源代码构建成一个 Wheel 文件了?如果你分享那个文件,我会很高兴。
styling - Scintill 编辑器:风格构成
我正在尝试使用 Scintilla 编辑组件(实际上使用 python Qscintilla,但这在这里无关紧要)来编辑或多或少的纯文本(不是编程语言或其他结构化文本)。
尽管如此,我还是有一些可以识别的结构,并且可以以不同的风格呈现。这不是问题,因为我已经实现了必要的功能。
问题是其中一些结构可能嵌套;特别是一些“关键字”即使在“引号”(以不同的方式突出显示)内也应该被识别(并突出显示)。
有什么方法可以“组合”样式吗?即:如果引号内的文本具有绿色背景并且关键字具有粗体红色前景,是否有一种“简单”的方法可以将引号中的关键字设置为“绿色背景和粗体红色前景”?
我知道我可以定义“keyword_in_quotes”样式并手动获得所需的效果;我想知道闪烁是否有一些内置支持。
python - QScintilla 词法分析器上的 setAutoIndentStyle() 不起作用
自动缩进是 QScintilla 提供的一个非常好的功能。插入新行时,自动缩进将光标推到与前一个相同的缩进级别:
1.没有词法分析器
如果你没有安装词法分析器,你可以像这样轻松地打开这个功能:
self.__editor
在此代码行中是 的一个实例QsciScintilla()
,因此它代表我代码中的实际编辑器。
2. 使用词法分析器
即使您激活了词法分析器,以前的方法仍然有效。但这不是一个很好的做法,因为词法分析器可能会覆盖该设置。所以更好的方法是删除之前的代码行,并在词法分析器中打开自动缩进:
这种方法的另一个优点是更大的灵活性。在词法分析器中打开自动缩进让您可以选择(甚至组合):
QsciScintilla.AiOpening
QsciScintilla.AiClosing
QsciScintilla.AiMaintain
3.问题
第一段中描述的方法没有词法分析器有效。第二段中描述的使用词法分析器的方法没有。无论我选择哪个设置作为参数setAutoIndentStyle(..)
,都不会改变。
为什么?
4. 一个完整的实验示例
这里是一个实验示例。只需将其复制粘贴到.py
文件中并运行即可。你应该得到一个带有一些简单语法高亮的工作编辑器。您可以使用它来试验自动缩进:
我已经从我在 QScintilla 上的网站上获取了这个例子(并稍微适应了这个问题的需要):https ://qscintilla.com/custom-lexer-example/
5.注意事项
为了完整起见,这是我的系统:
- 视窗 10
- 蟒蛇 3.6
- QScintilla 2.10 或更高版本
c++ - qscintilla2:架构 x86_64 的未定义符号
我有一个静态 Qt 并在 macOS 10.12.4 上重新编译了 qscintilla2_qt5.a (2.10)。当我编译我的项目时,它会打印此错误:
python - 在 QScintilla 编辑器中插入图像
编辑:
标准的 QScintilla 软件不支持此功能。但是 Matic Kukovec 做了一些小技巧来让它正常工作。他的解决方案在下面的回答中进行了解释,也在这个网页上进行了解释:https ://qscintilla.com/insert-images/
我想在 QScintilla 编辑器中插入图像。不幸的是,这样的功能不会很快添加到官方的 Scintilla 项目中。查看 Scintilla-interest-group 上的这篇文章:
https://groups.google.com/forum/#!topic/scintilla-interest/Bwr4DY2Pv3Q
所以我必须自己实现它。我试了一下。请将以下代码复制粘贴到 python 文件中并运行它。只需确保您qscintilla_logo.png
在同一个文件夹中有一个大约 80 x 80 像素的图像:
运行 Python 脚本时,您应该得到以下结果:
我实际上是在编辑器顶部添加一个 QLabel ,并给它一个绝对位置:
不幸的是,向下滚动时图像不会移动:
我想我知道为什么。让我解释。编辑器是类的一个对象QsciScintilla
,它是 的子类QsciScintillaBase
,它是 的子类QAbstractScrollArea
:
我相信成功的关键是将 QLabel 添加到内的小部件QAbstractScrollArea
,而不是滚动区域本身。我已经尝试了几件事来找到那个小部件,但没有成功。
如果它是 a QScrollArea
,那么该功能widget()
就足够了。但是这个功能在QAbstractScrollArea
.
编辑 1:
python 代码示例中的编辑器不执行任何语法突出显示,甚至没有行号。那是因为我只想关注实际问题 - 添加图像。代码示例基于:https ://qscintilla.com/an-editor-in-a-gui/
编辑 2:
请不要就在编辑器中插入图像是好主意还是坏主意发表意见。让我们坚持手头的技术问题。
qt - ld: 找不到 -lqscintilla2 的库
调试步骤:
当这不起作用时,我再次卸载,然后从 src 手动构建:
当那不起作用时,我尝试了:
python - 使用 QScintilla 和 PyQt 的自动完成建议中没有 python 关键字
在使用 QsciLexerPython 词法分析器设置 api 时,我期待 Python 关键字(即for, range, lambda
)的自动完成建议,并希望使用标准库模块和函数(即等)获得自动完成建议,但在下面的代码示例中,压缩和更新了website,唯一发生的自动完成是添加到列表中的四个字符串。sys, os.path
我做错了什么,如果是这样,我如何让 python 关键字在自动完成中注册?(我的主要问题当然在这里)
如果这是预期的行为,那么词法分析器在自动完成中扮演什么角色,为什么在这个例子中来自词法分析器的关键字没有分配给自动完成列表?
最后,是否可以在自动完成中包含 python 标准库模块和子模块,这需要什么?