BlinCT5 февраля 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
- 11 ноября 2024 г. 14:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50баллов,
- Очки рейтинга-4
m
- molni99
- 26 октября 2024 г. 1:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
m
- molni99
- 26 октября 2024 г. 1:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20баллов,
- Очки рейтинга-10
Последние комментарии
ИМ
Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь Максимов22 ноября 2024 г. 11:51
Evgenii Legotckoi31 октября 2024 г. 14:37
Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5 октября 2024 г. 7:51
QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Сейчас обсуждают на форуме
Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
Evgenii Legotckoi24 июня 2024 г. 15:11
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey115 ноября 2024 г. 6:04
NSProject4 июня 2022 г. 3:49
IscanderChe31 октября 2024 г. 15:43
добрый, а пробывали обращаться через лист 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 или более ячеек, и только тогда пропертя получает размер.
В общем не получается так(