BlinCT5. Februar 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
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 04:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 11:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 07:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 01:50
EVA25. Dezember 2023 10:30
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 04:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 09:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
добрый, а пробывали обращаться через лист 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 или более ячеек, и только тогда пропертя получает размер.
В общем не получается так(