2017-04-25 10 views
1

Textの要素はtextFormat: Text.RichTextです。画像は、Text膨張しにおけるロードが、レイアウトを再計算せず、したがって要素が重なっている場合:どのようにしてColumnLayoutの再レイアウトをトリガーできますか?

import QtQuick 2.7 
import QtQuick.Controls 2.1 
import QtQuick.Layouts 1.3 

Item { 
    ColumnLayout { 
    Repeater { 
     model: [1,2]; 
     delegate: Item { 
     id: item; 
     height: sample_col.height; 
     ColumnLayout { 
      id:sample_col 
      Text { text: 'sample_col.height=' + sample_col.height + 
         ' item.height=' + item.height; } 
      Text { 
      id: expanded_sample_html; 
      textFormat: Text.RichText; 
      text: '<img src="https://upload.wikimedia.org/wikipedia/commons/0/06/Kitten_in_Rizal_Park%2C_Manila.jpg">'; 
      } 
     } 
     } 
    } 
    } 
} 

画像は、最終的にアプリケーションをダウンロードするときに、私は参照:

enter image description here

したがって、高さが正しいため画像がロードされた後にTextの重複が発生しますが、親には流れませんColumnLayout

親、ColumnLayoutを再描画するにはどうすればいいですか?

答えて

1

レイアウトタイプで作業するときは、添付のLayoutプロパティを使用する必要があります。

宣言的な機能を明示的に作成することは、何かが欠落しているか、コードをリファクタリングするのが良い兆候です。

Flickable { 
    anchors.fill: parent 
    contentWidth: mainColumn.width 
    contentHeight: mainColumn.height 
    ColumnLayout { 
     id: mainColumn 
     Repeater { 
      model: [1,2]; 
      delegate: Item { 
       id: item; 
       Layout.preferredWidth: sample_col.width 
       Layout.preferredHeight: sample_col.height 
       ColumnLayout { 
        id:sample_col 
        Text { text: 'sample_col.height=' + sample_col.height + 
           ' item.height=' + item.height; } 
        Text { 
         id: expanded_sample_html; 
         textFormat: Text.RichText; 
         text: '<img src="https://upload.wikimedia.org/wikipedia/commons/0/06/Kitten_in_Rizal_Park%2C_Manila.jpg">'; 
        } 
       } 
      } 
     } 
    } 
} 
関連する問題