Українська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
Повідомлення: 3747
В 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
Повідомлення: 3747
"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
Повідомлення: 3747
Да, в 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.



21686