Почему TextArea с NoWrap всегда вызывает предупреждение "Обнаружен цикл привязки"?
Почему TextArea
с
wrapMode: TextEdit.NoWrap
всегда вызывает
file:///C:/Qt/5.5/mingw492_32/qml/QtQuick/Controls/ScrollView.qml:340:13: Элемент QML: возможный цикл привязки обнаружен при заполнении.
когда я запускаю это?
Я использую Qt 5.5 на 64-битной машине с Windows 7 и компилирую с MinGW.
Вот мой код QML test.qml
:
import QtQuick 2.4
import QtQuick.Controls 1.3
ApplicationWindow {
title: "test window"
width: 500
height: 500
visible: true
TextArea {
wrapMode: TextEdit.NoWrap
}
}
Вот мой код C++ main.c
:
#include <QApplication>
#include <QQmlApplicationEngine>
#include <QtQml>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine;
engine.load(QUrl(QStringLiteral("qrc:/test.qml")));
return app.exec();
}
Даже если я добавлю anchors.fill: parent
к TextArea
Я все еще получаю предупреждения.
В качестве второй части этого вопроса, стоит ли мне беспокоиться об этом предупреждении или я могу спокойно его игнорировать?
1 ответ
Я думаю, что это ошибка в Qt, вы можете игнорировать ее. Когда создан, TextArea
иметь width != 0
даже если он пуст. Когда вы вводите текст, который имеет implicitWidth
меньше, чем (по умолчанию) width
из TextArea
Вы получите это предупреждение.
Обходной путь должен назначить wrapMode
недвижимость в Component.onCompleted
обработчик:
Component.onCompleted: wrapMode = TextEdit.NoWrap