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