УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

[BugFixed] Vision разработка пользовательского интерфейса Qt5 невозможно редактировать составные атрибуты.


Автор Сообщение
Сообщение создано: 03. 03. 2017 [08:55]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
В редакторе пользовательского интерфейса собранного с Qt5 некорректно работает окно редактирования атрибутов виджета:
Простые атрибуты (Описание, Активный, Включен, ...) редактируются нормально.
Составные атрибуты (Геометрия, Помощь, Фон, ... ) при клике мышкой в колонку "Значение" фокус улетает вверх списка, хотя при клике в колонку "Атрибут" фокус адекватно пермещается по атрибутам. Из-за того что фокус улетает - невозможно менять значение составных атрибутов. В Qt 4 все работает нормально. Проверял на разных проектах. Баг воспроизводится на всех версиях Ubuntu от 16.04 до 17.04 (x86 и x64), Qt от 5.5.1 до 5.7.1. Версия OpenSCADA - рабочая.
Сообщение создано: 03. 03. 2017 [09:06]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
В OpenSCADA, в месте менеджера атрибутов, нет ничего специфичного и оно работает на Qt4, следовательно то, что там какие-то проблемы на другой библиотеке Qt это проблемы той библиотеки, а не OpenSCADA.

Т.е. это не ошибка OpenSCADA, а в лучшем случае необходимость дополнительной адаптации под Qt5. А поскольку я Qt5 нигде не использую то такая адаптация мне лично не интересна.

P.S. Тем более, что на Debian8, TDE-R14, Qt5.3.2 таких проблем нет, т.е. это из уже популярных кривостей последних Qt5!

Learn, learn and learn better than work, work and work.
Сообщение создано: 03. 03. 2017 [10:24]
fido_max
Maxim Kochetkov
Contributor
Создатель темы
Зарегистрирован(а) с: 28.10.2010
Сообщения: 129
Другие вкладки (Обработка, Связи) с такими же деревьями работают нормально, некорректно работает только "Атрибуты". Видимо из-за того, что:

работающие вкладки используют QTreeWidget
class InspLnk: public QTreeWidget

// Add attributes configuration widget
obj_attr_cfg = new QTreeWidget(attr_cf_fr);

А Атрибуты используют QTreeView:

class InspAttr: public QTreeView
Сообщение создано: 03. 03. 2017 [10:39]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"fido_max" wrote:

Другие вкладки (Обработка, Связи) с такими же деревьями работают нормально, некорректно работает только "Атрибуты". Видимо из-за того, что:

работающие вкладки используют QTreeWidget
class InspLnk: public QTreeWidget

// Add attributes configuration widget
obj_attr_cfg = new QTreeWidget(attr_cf_fr);

А Атрибуты используют QTreeView:

class InspAttr: public QTreeView

И что, уже нельзя?
Я уже сказал, что проблемы новых версий Qt5 мне не интересны, если они интересны Вам то ищите, но постить сюда процесс не нужно.

Learn, learn and learn better than work, work and work.
Сообщение создано: 27. 11. 2017 [10:45]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
Да, в Qt5 > 5.3 добавили странную реализацию "QModelIndex sibling( int row, int column, const QModelIndex &idx ) const;" в QAbstractTableModel, переопределив или доопределив исходную в QAbstractItemModel.

Исправляется возвращением вызова реализации в QAbstractItemModel, что сейчас сделано для сборок на Debian 9 и позже попадёт в дерево исходников OpenSCADA.

Learn, learn and learn better than work, work and work.



1218