LINUX.ORG.RU

В QT из коробки нет умного grid'a? К вопросу об интерфейсах БД.

 , , , ,


0

1

Есть у меня две таблицы: Products(Id, Name, GroupId) и Groups(Id, Name), связанных ключом по полю GroupId Вот в C# я могу в 8 строчек кода сотворить такое. Т.е. добавление-редактирование сразу из грида, причём заполнение Products.GroupId в виде выпадающего списка. Правильно я понимаю, что без многокода такое же на QT сделать не получится?

Так-то это не проблема, можно на C# и под linux писать и через mono запускать, а просто интересно.

★★★

Тебе нужно добавить выпадающий список в ячейку таблицы? Если да, то не сказал бы, что это много кода. Если ты используешь простой виджет QTableWidget, то функция setCellWidget.

rumgot ★★★★★ ()
Ответ на: комментарий от dsxl

Узнать, способен ли грид из QT на вышеуказанное поведение при минимуме кода, ну, строк 20, не больше. Выяснилось, что таки многое он может, но до C#-вского ему ещё далеко.

tiinn ★★★ ()
Ответ на: комментарий от ncuxer

Неа. Выяснить, правильно ли я сделал, написав прогу на C#, или же на QT получилось бы как минимум не хуже. Пока получается, что правильно.

tiinn ★★★ ()
Последнее исправление: tiinn (всего исправлений: 1)
Ответ на: комментарий от tiinn

Если C# хватает, то какие вообще вопросы. В крестах удобства managed-сред нет и не будет, хотя в данном случае скорее вопрос вложенных ресурсов.

anonymous ()
Ответ на: комментарий от anonymous

Здесь именно второе. Понятно, что MS больше сил потратило на этот грид, дык, у неё и средств больше. Тут же как линукс vs windows: пользоваться линуксом можно, но требовать от него ультимативной замены виндам как-то глупо. Счастье, что вообще работает. Так и QT vs .net: пользоваться можно, видно, что старались всё спроектировать грамотно, но постоянно вылазят какие-то неочевидные мелочи, которые портят картину. Грид в QT хороший, сперва у меня создалось более плохое мнение, но не дотягивает до ультимативного решения. Но, видно, ребята старались.

tiinn ★★★ ()
Ответ на: комментарий от next_time

Дык, специализированное средство против универсального всегда выигрывает. А так, да, даже в Access такой грид лучше организуется. Но то опять же специализированное средство

tiinn ★★★ ()
Ответ на: комментарий от tiinn

вы признаёте, что встроенной такой возможности

И не только конкретно в гриде. Что-то сложнее хеловорда и стандартные компоненты кутей уже не катят. Из того что вспомнилось сразу:

QUndoStack потоконебезопасный изза привязки к виду — пришлось писать свой.

От QDomElement не унаследоваться — пришлось оборачиваться внешним классом/объектом, который держит этот QDomElement как свою пропертю и имеет все эти nextSiblings, appendChild и прочие.

При использовании прокси модели для сортировки и фильтрации между основной моделью и видом отваливается драгндроп т.к. вид не может передать нужное в/через прокси модель до реальной модели, да и сам вид начинает визуально глючить — выкинул прокси модель и запилил свою concurrent фильтрацию без этой сраной прослойки.

Пришлось реализовывать свой собственный лейаут для форм с нужным выравниванием лейблов, инпутов, комбо и прочими, потому что стандартные лейауты не могут в то что нужно.

Ну и эпик (есть/был): имеется сигнал о присоединении нового монитора, но отсутствует сигнал о отсоединении )) Ну и как писать многооконку с сохранением многомониторного расположения? Опрашивать количество моников в цикле раз в секунду?

Ощущение, что кутю пишет студентота. И только в виде простейших готовых примеров которые в бою не встретить.

С другой стороны, как бы я не верещал, а базовые вещи у кутей хороши. Да, я напишу сам, но, сам факт того, что я продолжаю писать кутями, уже говорит о том, что кути всё же хороши.

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

Опрашивать количество моников в цикле раз в секунду? Окна с других экранов прыгнут, а событие перемещения можно отловить (и там уже сделать опрос). Но это костыль и если отключеный монитор не был задействован никак программой, то не поможет. Хотя скорее всего в таком случае уже будет не так критично проигнорировать событие.

Ну и разве там нет события изменения разрешения полного виртуального рабочего стола?

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от tiinn

Что такого специализированного в таблице, куда можно выбрать (айди+тайтл) из дропдауна? Пилить уи в лоулевел-фреймворках это какое-то соревнование для инвалидов, типа проковыляй 20 метров и не потеряй костыли. Тем временем обычный DBGridEh умел в подбор в sql view из вложенного подзапроса, с картинками, прогрессами, фильтрами, чартами и прочим ux еще 20 лет назад. 20 лет, блджад, умел фичи, которые сейчас что в десктопе, что в вебе позиционируются как cutting-edge advanced industrial-grade orm-integrated technology и до сих пор не работают нормально без тонн клея и допиливания потрохов.

anonymous ()
Ответ на: комментарий от tiinn

А как ты C# в Linux-е с GUI завёл? Там же такая удобная фигня только в WindowsForms. Я уже давно не слежу за шарпом, раньше через xamarin с болью портировалось, но неуж то до ума довели?

peregrine ★★★★★ ()
Ответ на: комментарий от deep-purple

Они всегда были такими, как и гтк (как и аппкит по большому счету). При том, что любой эксплорер-лайк вынужден был все переписывать, а дефолта хватало только на окошко ввода (переменная окружения : значение) и прочих пропертибаров в текстовыми полями. Все правильно ты верещишь, архитектура всех «фреймворков» (с)(тм) это школьная поделка, ничего общего с бизнес-задачами не имеющая. Да даже со средствами разработки, написанными для этой же разработки. Любой иде для тулкита это набор захардкоженных памперсов и протезов для него же. Поймал ивент на уровне окна, продрался сквозь херово продуманную цепь последствий, переложил значения из пустого в порожнее, вычислил координаты ячейки на коленке, не забыл закатить солнце руками. Зато писатели этих прямоугольных залуп синьоры все из себя, умники с опытом «построения систем», «развития», «проектирования».

anonymous ()
Ответ на: комментарий от peregrine

А как ты C# в Linux-е с GUI завёл? Там же такая удобная фигня только в WindowsForms.

Дык, инструмент подбирают под задачу. В данном случае WinForms - то, что доктор прописал

tiinn ★★★ ()
Ответ на: комментарий от deep-purple

Пришлось реализовывать свой собственный лейаут для форм с нужным выравниванием лейблов, инпутов, комбо и прочими, потому что стандартные лейауты не могут в то что нужно.

А можно подробнее? Любопытно, т.к. я за 15 лет с кутями никогда не имел проблем с лэйаутами.

unC0Rr ★★★★★ ()
Ответ на: комментарий от tiinn

Просто учёт расходов.

Когда уже все ваши формочки для бухгалтерии сдохнут. С ними один гемор, честно. Через 5 лет в дотнете что-нибудь опять сломают, исходники прострут и будут поминать тебя дурным словом.

crutch_master ★★★★★ ()
Ответ на: комментарий от tiinn

А, значит никак не завёл. Почему тогда оффтопик в Development? Zhbert, изгони виндуоз девелоперов из Development-а в толксы, где им и место.

peregrine ★★★★★ ()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Когда уже все ваши формочки для бухгалтерии сдохнут. С ними один гемор, честно. Через 5 лет в дотнете что-нибудь опять сломают, исходники прострут и будут поминать тебя дурным словом.

А я не собираюсь свою поделку никуда выкладывать. Это лично для меня.

tiinn ★★★ ()

А , мог бы быть если не дележка того что было , а строгая приверженность правилам и отдача именно туда откуда брали

anonymous ()
Ответ на: комментарий от KivApple

Нет.

Вернее понятие «виртуальный стол» реализуют по разному, одни берут за это понятие воркспейсы, другие десктопы. Причём, мониторы — третья независимая сущность.

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от deep-purple

QUndoStack потоконебезопасный

Тю. Qt весь потоконебезопасный за исключением сигналов через Qt::QueuedConnection. Обычно никто не заморачивается потокобезопасностью.

ox55ff ★★★ ()
Ответ на: комментарий от deep-purple

Нет, конечно. В той части то, что надо, под мьютексами. Голову надо включать, тогда проблем не будет. А то подавайте им тред-сейфти из коробки и чтобы мусор собирало. На раст это туда, пожалуйста

ncuxer ()
Ответ на: комментарий от ncuxer

под мьютексами. Голову надо включать

Иди включи себе голову ещё парочкой мьютексов. Разрешаю даже рекурсивных, чтоб дедлоков не было.

deep-purple ★★★★★ ()
Последнее исправление: deep-purple (всего исправлений: 1)