BlinCT05 лютого 2021 р. 15:31
Применение нужных настроек(цвет, ширина) в графике для определенных обьектов
Всем привет.
Пытаюсь решить такую проблему:
есть булевое значение наличия или отсутствия заголовков в таблице, так же для строк в таблице через 1 строку применяется дизайн.
Я вызываю функцию и передаю туда индекс, там и происходит те или иные указания для цвета и ширины границы.
И ошибку я получаю
ReferenceError: delegateRect is not defined
Вопрос, что я делаю не так?)
Благодарю заранее
import QtQuick 2.12 Item { id: root property var model property bool headers : false function getSize(column) { return tableView.model.getSizeLongString(column) } function foo(indexRow) { if (headers == true) { console.log("indexRow", headers) if (indexRow % 2 == 0) { delegateRect.color = "transparent"; delegateRect.border.width = 0; } else { delegateRect.color = "#2C3033"; delegateRect.border.width = 1; } } else { console.log("indexRow", headers) if (indexRow % 2 != 0) { delegateRect.color = "transparent"; delegateRect.border.width = 0; } else { delegateRect.color = "#2C3033"; delegateRect.border.width = 1; } } } Row { id: rowHeader anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right height: visible ? 35 : 0 visible: root.headers enabled: !root.headers Repeater { id: headerRepeater model: root.model.headerModel Rectangle { id: rectHeader width: root.model.getSizeLongString(index) border.color: "blue" height: 35 Component.onCompleted: { root.model.setHeaderItem(rectHeader); } Text { width: 50 height: 35 anchors.fill: parent text: root.model.headerData(modelData, Qt.Horizontal, "display") } } } } ListView { id: tableView anchors.top: headers ? rowHeader.bottom : root.top anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom flickableDirection: TableView.VerticalFlick clip: true model: root.model delegate: Rectangle { id: delegateRect color: "transparent" implicitWidth: 543 implicitHeight: 22 property var indexRow: model.index Row { id: rect clip: true Repeater { id: celsRepeater model: root.model.columnCount() Component.onCompleted: { root.foo(delegateRect.indexRow) } Rectangle { id: rextText border.color: "blue" color: "#2C3033" width: root.model.getSizeLongString(index) height: 15 Text { width: 50 height: 35 anchors.fill: parent font.pixelSize: 12 verticalAlignment: Text.AlignTop color: model.index === 0 ? "#B8B8B8" : "#EAEAEA" text: root.model.getData(indexRow, model.index) } } } } } } }
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
AD
- Akiv Doros
- 12 листопада 2024 р. 01:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50бали,
- Рейтинг балів-4
m
- molni99
- 26 жовтня 2024 р. 11:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80бали,
- Рейтинг балів4
m
- molni99
- 26 жовтня 2024 р. 11:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20бали,
- Рейтинг балів-10
Останні коментарі
ИМ
Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь Максимов22 листопада 2024 р. 22:51
Evgenii Legotckoi01 листопада 2024 р. 00:37
Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов05 жовтня 2024 р. 17:51
QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Тепер обговоріть на форумі
Evgenii Legotckoi25 червня 2024 р. 01:11
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey115 листопада 2024 р. 17:04
NSProject04 червня 2022 р. 13:49
IscanderChe01 листопада 2024 р. 01:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
добрый, а пробывали обращаться через лист tableView.delegateRect.color="transparent";?
когда-то делал цветные строки в таблице на первых контролах, делал так
Интересно что если я не вызываю функцию а в место нее все if вытаскиваю то это срабатывает. Но через функцию не работает.
Не пойму почему
где-то явно нарушена область видимости обьекта, возможно delegateRect не доступен за пределами своего елемента, нужно смотреть документацию по-глубже.
где-то явно нарушена область видимости обьекта, возможно delegateRect не доступен за пределами своего елемента, нужно смотреть документацию по-глубже.
На самом деле есть такая мысль, надо бы понять как это протестить чтоыб найти ответ)
Кстати такой вопрос который касается имено этого кода, на строке 138 там есть ширина для Rectangle и в нем уже будет текст.
А вот внешнйи делегат у него у Rectangle у меня стоит статический размер ширины.
Вопрос состоит в том, можно ли получая ширину на 138 формировать ширину делегата для всех созданных в репиторе обьектов?
Мне надо как то в нормальный вид привезти то что на 110 и 111 строках.
если я правильно понял, можно добавить property int rec_width:0 в самом начале делегата, тогда там где нужно указать ширину указываем rec_width, а в Component.onCompleted: добавить rec_width=root.model.getSizeLongString(index), тогда будет перерисовываться по указанному размеру (должно сработать), или отдельно в модели передавать ширину, тогда будет что-то вроде property int rec_width:root.model.getSize(). возможно путанно написал, надеюсь идею поняли
Добрый вечер.
Спасибо за совет. По сути я идею понял но она получается не рабочей.
Потому что с начале у делегата имеется пропертя данная, потом ширина implicitWidth: 543 которая и дает ширину данной строки, а уже после репитер создает данные 2 или более ячеек, и только тогда пропертя получает размер.
В общем не получается так(