Arrow06 липня 2018 р. 06:09
Наследование от QLineEdit
Добрый день!
Наследуюсь от класса QLineEdit (новый класс LineWidget) , переопределяю несколько функций.
Сейчас возник вопрос: необходимо изменить цвет фона в зависимости от текста в виджете ( необходимо выполнять каждый раз при изменении текста в виджете ).
LineWidget связан с полем в базе данных через QDataWidgetMapper ( первый раз текст в виджете меняет маппер ).
Как возможно это реализовать, какой метод переопределить?
Пытался переопределить setText() - не работает, текст маппер в виджете меняет, но фон не меняется.
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.Вам це подобається? Поділіться в соціальних мережах!
sf
- sdfsdfkp fgskpgokspdog
- 14 жовтня 2024 р. 15:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:90бали,
- Рейтинг балів8
МВ
- Максим Васильев
- 02 жовтня 2024 р. 04:14
Qt - Тест 001. Сигналы и слоты
- Результат:68бали,
- Рейтинг балів-1
ЛС
- Лев Семенов
- 30 вересня 2024 р. 11:04
C++ - Тест 001. Первая программа и типы данных
- Результат:53бали,
- Рейтинг балів-4
Останні коментарі
Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов05 жовтня 2024 р. 07:51
QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко05 лютого 2024 р. 01:50
Тепер обговоріть на форумі
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов03 жовтня 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 вересня 2024 р. 09:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Добрый день!
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, логику выделения всё равно писать придётся самостоятельно.
Огромное спасибо за помощь и подсказки !!!
Из опыта разработки в нашей конторе (для программирование хобби я техподдержка): Если есть возможность переложить логику приложения на базу данных то это лутший вариант. Т.е. использовать по максимуму все возможности сервера БД.