BlinCTFeb. 5, 2021, 3:31 p.m.
Применение нужных настроек(цвет, ширина) в графике для определенных обьектов
Всем привет.
Пытаюсь решить такую проблему:
есть булевое значение наличия или отсутствия заголовков в таблице, так же для строк в таблице через 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) } } } } } } }
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
OI
- Ora Iro
- Dec. 24, 2024, 2:38 p.m.
C++ - Test 001. The first program and data types
- Result:40points,
- Rating points-8
AD
- Akiv Doros
- Nov. 11, 2024, 10:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 8:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
Last comments
ИМ
Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовNov. 22, 2024, 7:51 p.m.
Evgenii LegotckoiOct. 31, 2024, 9:37 p.m.
Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовOct. 5, 2024, 2:51 p.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Now discuss on the forum
AW
Why Paying for a Research Paper Can Be a Smart Choice Writing a research paper can be a daunting task, especially when faced with tight deadlines, complex topics, or a lack of resources. For many students, paying for a research paper is a practical…
Ayden WatkinsJan. 2, 2025, 8:09 a.m.
p
Finding the Right Rittal Small Enclosure for Your Needs Rittal is a leading manufacturer of enclosures for industrial and IT applications. Their small enclosures offer a compact and reliable solution for a wide range of needs, from housing electronic…
pimacontrols85Dec. 31, 2024, 5:39 p.m.
Donald RandolphDec. 30, 2024, 10:59 a.m.
Nirvana Yoga SchoolDec. 30, 2024, 1:13 p.m.
Mobile app development company in Chennai A Mobile app development company in Chennai focuses on creating personalized mobile applications to meet various business requirements. These companies offer a full range of services,…
добрый, а пробывали обращаться через лист 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 или более ячеек, и только тогда пропертя получает размер.
В общем не получается так(