![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
Приветствую господа ГУРУ среды разработки QT
Имеется 2 таблицы в базе данных связаны между собой по ключевому полю (reference) , есть среда разрабтки QT5 визуальной примочкой QT Creator Нужно создать простейшие 2 DbGrid-а на форме (Виджете) чтобы данные в них отображались так же, как в основной и подчинённой таблице, то есть основной записи соответствует выборка из подчинённой таблицы. Перелопатив кучу материала по интернету, кроме как оргназиацию выпадающих списков (ComboBox в ячейке) ничего путного не нашёл. Использую следующие компоненты и классы Код:
qmastertable И qdetailtable - компоненты QTableView Всё отображается красиво в двух разных окошках но связи нет.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
![]()
а код точно работает? смущают вот эти строки
Код:
Код:
Вообще не совсем понятно что вы хотите и что у вас не получается. Вы не можете сформировать запрос? или что? |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
Нету там никаких мастер-дитал.
Там есть model-view-delegate. И есть модель, которая основана на SQL запросе. Как из это собрать, че нада - читайте теорию model-view-delegate. P.S. сам ее терпеть не могу - ужасная вещь. |
![]() |
![]() |
![]() |
#4 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
alexzk SAMOUCHKA
код я действительно переделывал с рабочего в котором обхекты у меня создаются статически (это по поводу &) По поводу зачем всё нужно и что я вообще хочу... А хочу я ответа на простейший вопрос - "Разве в Qt под Linux невозможно создать обычное нормальное приложение с master-detail связью" Задача до такой степени примитивна и решается в других средах обработке, что я даже не знаю как её пояснить, но попробую. Допустим, есть таблица с городами и есть таблица с улицами. В каждой таблице с улицей есть ссылка на таблицу с городом. Нужно на форме отобразить 2 таблички, причём если я стою на строчке с городом "Москва" я должен во второй табличке видеть улицы города Москва, а есть я перехожу на строчку Казань, то в таблице "detail" должны отображаться все улицы города Казань. То есть отображение обычной master-detail связи в компонентах Qt
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
![]() Цитата:
тут все просто У тебя есть SQL база данных с таблицей города и с таблицей улицы. У города есть id. в таблице улиц, есть поле id_города. В UI у тебя так-же две таблицы, объекты QTableView- города и улицы. у QTableView есть сигнал clicked(QModelIndex). он испускается при кликанье, по нему мышью. Свяжи этот сигнал со своим слотом. В этом слоте из QModelIndex получаешь id_города. И исходя из этого строишь SQL запрос для таблицы улиц. Как то так |
|
![]() |
![]() |
![]() |
#6 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
то есть банальное байторочерство.. Теперь мне ясно почему линукс системы пользуются авторитетом в очень узкого круга лиц с особым устройством черепа =)))
Ладно Самоучка, а если я (оконечный пользователь) не люблю пользоваться мышкой, и всё набираю с помощью клавиатуры в том числе кнопки вверх и вниз ?
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]() Цитата:
![]() Upd...думаю погорячился. Такое не только в дельфи было, а в любых средах, где не было сервера sql БД - foxpro/clipper/etc. А на qt там ...вам нужен делегат поля. Делегат будет отображат, скажем QComboBox, у которого будет еще 1 своя модель, которая будет уже "detail". Вот, внизу делегат. Не скажу, что там все верно и академично (скорее наоборот), но контрол в таблице оно делает нужный. https://github.com/alexzk1/astroed/b...viewsmodel.cpp Последний раз редактировалось alexzk; 29.05.2018 в 01:06. |
|
![]() |
![]() |
![]() |
#8 | ||
Форумчанин
Регистрация: 07.08.2011
Сообщений: 576
|
![]() Цитата:
Цитата:
В чем собственно у вас проблема? Для создания двух связаных таблиц фреймворке все нужные компоненты уже есть, ни чего дописывать не надо. Как связать две таблицы объяснил выше. |
||
![]() |
![]() |
![]() |
#9 |
фонатик DELPHI
Форумчанин
Регистрация: 14.01.2008
Сообщений: 714
|
![]()
alexzk. Во первых спасибо за ответы.
Во вторых, я по жизни практический человек. Если заказчик просит меня создать приложение которое отображает в табличке фамилии сотрудников компании, а во второй табличке из зароботные платы по месяцам, то 90% своих усилий я бросаю на то, чтобы создать структуру БД и написать приложение удобное для пользователя... В среде QT мне приходится 90% своего времени работать с какими то не нужными мне свойствами и моделями, чтобы создать примитивный аналог компоненты DbGrid и 10% времени остаётся на саму предметную область задачи. Считаю что допиливанием компонент и перманетной пересборкой ядра должны заниматься люди, которые без этих деяний не могут прожить и дня своей жизни. К сожалению, я к таим людям не отношусь.... травма говорите - можете так называть готовую компоненту, которая позволяет программисту думать о поставленной задаче а не о прелестях допиливания Линукс. п.с. Qt4 под Windows это жесть жестяная. Очень жалею тех людей, которые занимаются изобретением велосипеда в Винде изобретённого лет 20 назад.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
![]() |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Ну ДбГрид в Дельфи-то может и хорош для стандартного CRUD, но примерно на этом преимущества и кончаются.
Например с Layout в VCL все плохо. А если старая Дельфи, то вообще кучи полезных вещей не завозили (аж до 2009). Ни Дженериков, ни хеш-сетов/мапов, ни лямбд. Ну и всякие красивости в GUI тоже намного проще в Qt делать (даже в стандартном Widgets без QtQuick/QML из 5+), даже без сторонних компонентов.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связь Master - Detail | vVladislav | Помощь студентам | 0 | 31.12.2016 14:46 |
fibplus master-detail условие в detail | tarakan1983 | БД в Delphi | 15 | 02.11.2014 16:10 |
Combobox и Master-Detail | Максим1818 | БД в Delphi | 4 | 13.02.2014 10:10 |
Master Detail. добавление редактирование | t.baychorov | БД в Delphi | 1 | 10.12.2011 14:23 |
Master-detail DELPHI+FIREBIRD | Liones | БД в Delphi | 1 | 30.11.2010 13:27 |