我TextEdit在Qt 5.5应用程序中使用组件编写代码.当Tab从其他编辑器按下或粘贴片段时,会应用默认选项卡大小(这是巨大的),我找不到更改该值的方法.
我的解决方法是将关键事件转发到C++控制器,在那里我为每个事件插入myCustomTabSize时间.或者在粘贴之前从剪贴板手动准备字符串.spaceCharacterQt::Key_Tab
的QTextEdit类提供了一个setTabStopWidth方法.那是否有QML等价物?
要在QML TextEdit中更改选项卡大小,请执行以下步骤:
1)设置objectName为TextEdit.
TextEdit {
objectName: "myTextEdit"
}
Run Code Online (Sandbox Code Playgroud)
2)TextEdit从c ++ 获取访问权限.
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
QObject *root = engine.rootObjects().at(0);
QObject *textEdit = root->findChild<QObject*>(QStringLiteral("myTextEdit"));
Run Code Online (Sandbox Code Playgroud)
3)获取QTextDocument,关联TextEdit.
QQuickTextDocument *quickTextDocument = textEdit->property("textDocument").value<QQuickTextDocument*>();
QTextDocument *document = quickTextDocument->textDocument();
Run Code Online (Sandbox Code Playgroud)
4)获取默认值QTextOption.
QTextOption textOptions = document->defaultTextOption();
Run Code Online (Sandbox Code Playgroud)
5)设置制表位之间的设备单位距离
textOptions.setTabStop(10);
Run Code Online (Sandbox Code Playgroud)
6)设置文档选项.
document->setDefaultTextOption(textOptions);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
795 次 |
| 最近记录: |