2015-08-29 5 views
3

Я использую команду rowDelegate для реализации переменных высот строк следующим образом. Однако он не использует цвета фона по умолчанию для выбранных/альтернативных строк. Как сохранить все значения по умолчанию, которые я не пытаюсь переопределить?Как переопределить некоторые свойства TableView.rowDelegate при сохранении других значений по умолчанию

TableView { 
     id: messagesTable 
     TableViewColumn { 
      role: "severity" 
      title: "" 
      width: 20 
      delegate: Image { 
       anchors.centerIn: parent 
       fillMode: Image.Pad 
       source: iconSources[styleData.value.toLowerCase()] 
      } 
     } 
     TableViewColumn { 
      role: "message" 
      title: "Message" 
      width: 300 
     } 
     TableViewColumn { 
      role: "source" 
      title: "File" 
      width: 150 
     } 
     TableViewColumn { 
      role: "startLine" 
      title: "Line" 
      width: 40 
     } 
     TableViewColumn { 
      role: "startColumn" 
      title: "Column" 
      width: 50 
     } 
     rowDelegate: Rectangle { 
      width: childrenRect.width 
      height: (messagesModel.get(styleData.row).lineCount || 1) * 20 
     } 
     model: messagesModel 
    } 

ответ

1

Вы не можете.

Общее правило стилизации с помощью Qt Quick Controls: после того, как вы переопределите делегат, вы начинаете с нуля. Если, например, стили предоставили тип DefaultTableViewRowDelegate, вы могли бы создать экземпляр этого, а затем он будет работать, но поскольку делегаты по умолчанию написаны inline, у вас нет доступа к ним.

+0

Ну, это большой позор. Вы знаете, где я могу получить доступ к цветам по умолчанию? – Andy

+0

Я вижу 'QStyledItemDelegate' ... ничего подобного для делегатов строк? – Andy

+1

Существует [SystemPalette] (http://doc.qt.io/qt-5/qml-qtquick-systempalette.html), но я не уверен, что это даст вам нужные цвета. Стиль рабочего стола использует стиль Qt Widgets, как вы могли заметить, но я уверен, что вам придется использовать частный API, если вы хотите его использовать (для 'QPlatformTheme' и т. Д.). – Mitch

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

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