Arrow6 июля 2018 г. 6:09
Наследование от QLineEdit
Добрый день!
Наследуюсь от класса QLineEdit (новый класс LineWidget) , переопределяю несколько функций.
Сейчас возник вопрос: необходимо изменить цвет фона в зависимости от текста в виджете ( необходимо выполнять каждый раз при изменении текста в виджете ).
LineWidget связан с полем в базе данных через QDataWidgetMapper ( первый раз текст в виджете меняет маппер ).
Как возможно это реализовать, какой метод переопределить?
Пытался переопределить setText() - не работает, текст маппер в виджете меняет, но фон не меняется.
Рекомендуем хостинг 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
Последние комментарии
Qt/C++ - Урок 060. Настройка внешнего вида приложения в рантайме I didnt have an issue work colors priligy dapoxetine 60mg revia cost uk August 3, 2022 Reply
Коммутация каналов и пакетов в сетях передачи данных Angioedema 1 priligy dapoxetine
Как Копировать Файлы в Linux If only females relatives with DZ offspring were considered these percentages were 23 order priligy online uk
Qt/C++ - Урок 068. Hello World с использованием системы сборки CMAKE в 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
EVILEG-CORE. Использование Google reCAPTCHA 2001; 98 29 34 priligy buy
Сейчас обсуждают на форуме
добавить 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
IscanderChe31 октября 2024 г. 15:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3 октября 2024 г. 4:05
Добрый день!
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, логику выделения всё равно писать придётся самостоятельно.
Огромное спасибо за помощь и подсказки !!!
Из опыта разработки в нашей конторе (для программирование хобби я техподдержка): Если есть возможность переложить логику приложения на базу данных то это лутший вариант. Т.е. использовать по максимуму все возможности сервера БД.