crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Виджет из QT3 в QT4, У кого есть QDataTable переделан под 4.5 < ?
JohnZ
  опции профиля:
сообщение 25.7.2014, 15:14
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Здравия Всем !

Понадобился мне в проект QDataTable, из QT3, а тянуть ВЕСЬ модуль Qt3Support4.dll не хочется.
QTable из 4-ки более похож на M$ Exel, и для справочников не совсем то что мне нужно ...
Может кто уже занимался этим вопросом, поделитесь плз. Буду оч-чень благодарен !
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 25.7.2014, 23:31
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Нарисуйте как должно выглядеть то что вам нужно, прикинем как настроить QTableView чтобы выглядел так же.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
JohnZ
  опции профиля:
сообщение 26.7.2014, 13:26
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Цитата(lanz @ 25.7.2014, 23:31) *
Нарисуйте как должно выглядеть то что вам нужно, прикинем как настроить QTableView чтобы выглядел так же.


Вид в прицепе, но видимо тут нужны некоторые пояснения с моей стороны, почему нужно
именно так, а не иначе ...
Работаю над проектом типа "Ананас", если кто в курсе что это за проект.
В 3-й версии ребята потрудились на славу, молодцы, но вот при переходе на 4-ю версию,
вынуждены были потянуть Qt3Support4.dll, т.к. слишком много в проекте "завязано" на Qt3 ...
Не знаю почему в точности, (отладчик "сваливается" в ассемблерный код dll) но IMHO
по этой причине под виндой он глючный до безобразия, и собирается с "бубном", т.к.
недоработан import/export функций в т.ч. В линухе это сделано "автоматом", а в винде нет,
как я вычитал на этом форуме ...
Кроме того видимо сказывается разность версий Qt, - Ананас4 собирался с 4.1.5,
а я собираю с 4.5.3. Это видимо тоже одна из причин "сваливания" встроенного
Дизайнера диалогов Qt4. Его тоже придётся переделывать ... :unsure: Пробовал
собирать с 4.6.1 - вылетает почти сразу, после запуска Дизайнера диалогов ...

Прошу прощения за длинную тираду, а теперь по-делу ...
QDataTable должен будет показывать справочники (и документы видимо тоже), быть плагином
в Дизайнере диалогов и предоставлять интерфейсы для QSA (Qt-Script убрал из проекта
и вернул QSA-1.2.3, т.к. IMHO он "шустрее". Мне удалось его собрать под 4.5.3.
В оригинале есть 2 ошибки, если кому надо ...), а QTableView я планирую на показ
табличных отчётов. Должны-же быть какие-то отличия ... :rolleyes:

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.7.2014, 10:16
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Визуально я не вижу отличий от QTableView (Qt4).

Можешь использовать QTableWidget (Qt4), монолитный класс по аналогии с QDataTable (Qt3)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 29.7.2014, 18:54
Сообщение #5


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Если нужно все связать, можно сделать свой виджет с QTableView и встроенной QSqlTableModel например. Оформить его как плагин, сделать QSA интерфейс.
Кстати, насчет того что QSA шустрее, есть какие нибудь бенчмарки?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
JohnZ
  опции профиля:
сообщение 31.7.2014, 12:25
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Юрий, БлагоДарю. Попробую, но пока не очень получается настроить, т.к. некоторые св-ва в Дизайнере
этого элемента для меня пока не совсем понятны ...
И ещё, пока есть одна проблема, - для QTableWidget метод setmodel() из QTableView закрыт, а QTableView
не настраивается как QTableWidget ...

Цитата(lanz @ 29.7.2014, 18:54) *
Если нужно все связать, можно сделать свой виджет с QTableView и встроенной QSqlTableModel например. Оформить его как плагин, сделать QSA интерфейс.


Именно так мне и нужно. Скорее всего сделаю шаблоны форм *.ui (Справочник, Документ, ...),
с настроенным заранее QTableWidget, как подсказал Юрий, и положу их в ресурсы приложения.
Ну и + (универсальный) класс, это всё хозяйство обслуживающий ...
Вернее 2 класа, для Дизайнера Арр и Исполнителя ...

Цитата(lanz @ 29.7.2014, 18:54) *
Кстати, насчет того что QSA шустрее, есть какие нибудь бенчмарки?


Дык заглянув в исходники QSA и Qt Script, хотя-бы поверхностно можно оценить выполняемый объём работы
одним и вторым интерТреПатором по разбору и выполнению кода жабьего скрипта. На мощной технике это
видимо будет мало заметно, а вот на "слабых" машинках, и при десятке-втором тыс. записей в БД, это уже
будет заметно, IMHO. Я не имею в виду выборку/фильтрацию SQL-ем, а обработку записей именно скриптом,
как в отчётах, например. Ведь заранее не известно, для каких целей будет этот скрипт применён ...
Справедливости ради, могу добавить, что спрашивал я у Макса Шлее о "возвращении" QSA,
дык он рекомендовал не делать этого. Но я пока остался при своём мнении. Попробую, буду знать точно,
но до этого пока ещё далеко ...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 31.7.2014, 19:03
Сообщение #7


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Цитата(JohnZ @ 31.7.2014, 13:25) *
Попробую, но пока не очень получается настроить, т.к. некоторые св-ва в Дизайнере
этого элемента для меня пока не совсем понятны ...

Спрашивайте какие, на той картинке что вы привели выглядит как QTableView по умолчанию.

Цитата
И ещё, пока есть одна проблема, - для QTableWidget метод setmodel() из QTableView закрыт, а QTableView
не настраивается как QTableWidget ...

Потому что в QTableWidget своя модель. Что вы имеете в виду, когда говорите не настраивается? Какие параметры не настраиваются?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
JohnZ
  опции профиля:
сообщение 1.8.2014, 19:39
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Имелось в виду то, что в QT Дизайнере задать заранее колонки для QTableView нельзя (нет там такого диалога его настройки
как элемента диалога, т.е. формы Справочник, Документ, ...), а у QTableWidget такой диалог есть. Вызывается двойным
щелчком на элементе.
Например, в справочнике 5 полей, показать нужно 3. Для QTableWidget в QT Дизайнере это настроить можно,
а так-же добавить ему дин-е св-ва и задать им значения, а как для QTableView это сделать, я не нашёл. (QT 4.5.3)
Я понимаю что QTableView заточен для модель\представления, но дело в том, что заранее не известно, сколько полей будет в
таблице, и какие из них и в каком порядке будут в просмотре. Именно для этого и нужен родной QT Дизайнер.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 1.8.2014, 20:02
Сообщение #9


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Число полей, а так же их порядок и названия зависят от модели, у нее для этого нужно переопределить методы
columnCount, headerData и т.п.
Почитайте вот это: http://qt-project.org/doc/qt-4.8/model-view-programming.html

В свою очередь эти методы могут выдавать разные значения динамически. Т.е. вам не нужно несколько View для разных типов таблиц, а нужно несколько моделей(например).
Или одна модель которая настраивается через дизайнер.
Вот здесь описано как сделать модель со своими свойствами: http://qt-project.org/doc/qt-4.8/designer-...om-widgets.html
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
JohnZ
  опции профиля:
сообщение 1.8.2014, 20:34
Сообщение #10


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Цитата(lanz @ 1.8.2014, 20:02) *
Число полей, а так же их порядок и названия зависят от модели, у нее для этого нужно переопределить методы
columnCount, headerData и т.п.
Почитайте вот это: http://qt-project.org/doc/qt-4.8/model-view-programming.html

Я имел в виду динамический BIND полей, как в формах 1С или Ананасе.

Цитата(lanz @ 1.8.2014, 20:02) *
В свою очередь эти методы могут выдавать разные значения динамически. Т.е. вам не нужно несколько View для разных типов
таблиц, а нужно несколько моделей(например). Или одна модель которая настраивается через дизайнер.
Вот здесь описано как сделать модель со своими свойствами: http://qt-project.org/doc/qt-4.8/designer-...om-widgets.html

Именно так, одна (универсальная) модель которая настраивается через дизайнер(ы) !
Виджеты дизайнера "родные", и мне пока нет необходимости создавать свои, нужно лишь к имеющимся
добавить необходимые динамические свойства для BIND-а, например ID поля и его номер колонки в view.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 22:52