ArrowJuly 6, 2018, 6:09 a.m.
Наследование от QLineEdit
Добрый день!
Наследуюсь от класса QLineEdit (новый класс LineWidget) , переопределяю несколько функций.
Сейчас возник вопрос: необходимо изменить цвет фона в зависимости от текста в виджете ( необходимо выполнять каждый раз при изменении текста в виджете ).
LineWidget связан с полем в базе данных через QDataWidgetMapper ( первый раз текст в виджете меняет маппер ).
Как возможно это реализовать, какой метод переопределить?
Пытался переопределить setText() - не работает, текст маппер в виджете меняет, но фон не меняется.
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!
AD
- Akiv Doros
- Nov. 12, 2024, 1:58 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 11:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
m
- molni99
- Oct. 26, 2024, 11:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Last comments
Qt/C++ - Lesson 031. QCustomPlot – The build of charts with time buy generic priligy We can just chat, and we will not lose too much time anyway
Qt/C++ - Lesson 060. Configuring the appearance of the application in runtime I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
Circuit switching and packet data transmission networks Angioedema 1 priligy dapoxetine
How to Copy Files in Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
Qt/C++ - Tutorial 068. Hello World using the CMAKE build system in CLion ditropan pristiq dosing With the Yankees leading, 4 3, Rivera jogged in from the bullpen to a standing ovation as he prepared for his final appearance in Chicago buy priligy pakistan
Now discuss on the forum
добавить qlineseries в функции priligy amazon canada 93 GREB1 protein GREB1 AB011147 6
Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
IscanderCheNov. 1, 2024, 1:43 a.m.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь МаксимовOct. 3, 2024, 2:05 p.m.
Добрый день!
StyleSheet неправильно написан. Надо так
Спасибо! Работает и мое и Ваше , но только при обработке события клика на виджете (когда setText() вызывается в
), а при загрузке данных маппером в виджет - нет.У меня ваш вариант не сработал, наверное из-за того, что я запускал этот код под дистрибутивом KDE neon.
А можно пример.
Можно ещё один вопрос не по теме, но все-же. Есть QListViw со списком элементов, как можно получить индекс элемента по его тексту? Пытался найти вопрос в документации, но ничего не нашёл.
вы уже реализовывали работу с QItemDelegate , а у маппера есть метод setItemDelegate. Помните тот вопрос?
В зависимости от модели данных, в QListView может находиться, что угодно, хоть хитровыделанные объекты с изображениями, поэтому логично, что в QListView нет такого механизма, чтобы по тексту получить индекс. Вам нужно писать поиск либо по модели данных либо по этому QListView нужной строки, и уже с помощью неё делать индекс
Понял, буду с QListView выкручиваться. Вопрос помню перелопатил документацию, но нигде нет информации как маппер данные в виджеты впихивает.
Маппер должен вызывать методы и , там уже специализированная логика для различных виджетов должна быть.
Да похоже у него есть фильтрация т.к. к нему подсоединить можно любой виджет, но данные он заносит только в поля ввода, комбобокс и лейбл. Только какие методы использует неясно. В QLineEdit textChanged срабатывает, но только когда маппер данные занес, при этом похоже что setText он не использует.
Возможно, не совсем корректно формируется строка QString. Не знаю почему, но такое поведение проскакивает, когда работаете с базой данных.
Перепишите так.
Это если действительно только с лямбдой не работает. Кстати, если вы захватываете id по ссылке и что-то делаете с ним в методе saveToDB, также передавая по ссылке его, то не может быть так, что вы в том методе его изменяете?
Запрос формируется верно в обоих случаях, только при выполнении лямбды второй раз запрос сформирован верно, а ответа нет - query установлено на неверную запись. Пробовал писать вместо next - last, first - результат тот-же.
Если в том QListView модель данных таблицы из записей в базе данных, то можно воспользоваться id тех записей.
Не знаю, может мы и поняли друг друга не верно. Попробую описать это на примере.
Есть таблица пользователей:
Поля таблицы users:
id (integer, autoinc, unique)
name (text, not null, unique)
passord (text)
group (какой-то тип для хранения id выделенных записей из таблицы groups)
Таблица групп:
Поля таблицы groups:
id (integer, autoinc, unique)
name (text, not null, unique)
type (text)
Пользователь может входить в несколько групп.
Так вот в QListView отображается поле "name" таблицы "groups". а результаты віделения "id" из таблицы groups должны записываться в поле "group" таблицы "users".
На форме располагается таблица с данными из "users". Пользователь выбирает создать новую или редактировать существующую запись и отображается форма с полями ввода и QListView. Пользователь может выделить несколько записей в QListView и сохранить данные. А при повторном редактировании эти-же записи в QListView уже должны быть выделены.
Вот это все выше описанное и пытаюсь реализовать.
Может использовать что-то похожее на тип array - пример из документации PostgreSQL:
В общем объяснил как смог. Извините за возможные неточности.
Да, я понял правильно.
Спасибо! Понял, так и буду делать. Только пока не совсем понял, как быть с выделение данных в QListView при редактировании существующей записи.
Там скорее нужно делать сырой Query запрос, находить все id для выделения, потом через проход по списку искать нужные записи, найдя все нужные QModelIndex делать выделение.
Понятно. А есть возможность чем-то заменить QListView, чтобы уйти от этого?
От чего именно уйти? От необходимости реализовывать логику выделения? Это нестандартный функционал, так что нет, чем бы Вы не заменили QListView, например QTableView или QTreeView, логику выделения всё равно писать придётся самостоятельно.
Огромное спасибо за помощь и подсказки !!!
Из опыта разработки в нашей конторе (для программирование хобби я техподдержка): Если есть возможность переложить логику приложения на базу данных то это лутший вариант. Т.е. использовать по максимуму все возможности сервера БД.