1

为什么是一个TextArea

wrapMode: TextEdit.NoWrap 

总是导致

file:///C:/Qt/5.5/mingw492_32/qml/QtQuick/Controls/ScrollView.qml:340:13:QML 项目:在填充时检测到可能的锚循环。

当我运行它?

我在 64 位 Windows 7 机器上运行 Qt 5.5,并使用 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: parentTextArea,我仍然会收到警告。

作为这个问题的第二部分,这个警告是我应该担心的,还是我可以放心忽略的?

4

1 回答 1

1

我认为这是 Qt 的错误,您可以忽略它。创建时,TextArea有一个width != 0,即使它是空的。当您输入的文本implicitWidth小于 的(默认)widthTextArea,您将收到此警告。

一种解决方法是在处理程序中分配wrapMode属性Component.onCompleted

Component.onCompleted: wrapMode = TextEdit.NoWrap
于 2015-07-12T00:39:52.987 回答