2016-11-08 2 views
2

Я использую элемент управления флажок в TableView, который я определяю с QML следующим образом:центр чекбокс в Tableview с QML

import QtQuick 2.2 
import QtQuick.Controls 1.4 
import QtQuick.Controls.Styles 1.4 

TableViewColumn { 
    title: "" 
    role: "check"  
    delegate: CheckBox { 
     anchors.fill: parent 
     checked: false 
     anchors { horizontalCenter: parent.horizontalCenter } 
    } 
} 

я могу использовать его в TableView следующим образом:

import QtQuick 2.3 
import QtQuick.Window 2.2 
import QtQuick.Layouts 1.1 

import QtQuick.Controls 1.4 
import QtQuick.Controls.Styles 1.4 

ControlView { 
    visible: true 
    width: parent.width; height: parent.height  
    anchors.centerIn: parent 

    TableView { 
     id: reviewTable 
     width: parent.width; height: parent.height 
     anchors.centerIn: parent 

     TableViewCheckBoxColumn { 
      title: "Upload" 
      width: 100 
      resizable: false 
     } 

     TableViewColumn { 
      resizable: true 
      role: "Dummy" 
      title: "Dummy" 
      width: 250 
     } 

     style: TableViewStyle { 
      headerDelegate: Rectangle { 
       height: textItem.implicitHeight 
       width: textItem.implicitWidth 

       Text { 
        id: textItem 
        anchors.fill: parent 
        verticalAlignment: Text.AlignVCenter 
        text: styleData.value 
        renderType: Text.NativeRendering 
        font.bold: true      
       } 
      } 
     }   

     model: ListModel { 
      ListElement { 
       Dummy: "value 1" 
      } 
      ListElement { 
       Dummy: "value 3" 
      } 
     } 
    } 
} 

Теперь, несмотря на то, что установлены якоря (или любое свойство выравнивания, которые были доступны), флажок остается выровненным влево. Как я могу сосредоточить его по горизонтали в колонке?

ответ

1

Оберните CheckBox в делегатом, как показано ниже:

Item { 
    anchors.fill: parent 
    CheckBox { 
     anchors.centerIn: parent 
     checked: false 

    } 
} 

И кстати, не следует смешивать версии QtQuick в одном приложении.

+0

К сожалению, это не сработало. Я получаю тот же результат. Добавление 'anchors.fill: parent' завершается с ошибкой Component not ready. – Luca

+0

Возможно, вы не указали весь исходный код. Он работает для меня как шарм. – folibis

+0

Это действительно работает. Я совершенно неправильно понял ... должен был читать лучше. Извиняюсь. – Luca

 Смежные вопросы

  • Нет связанных вопросов^_^