EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

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


Author Message
Written on: 03. 03. 2017 [08:55]
fido_max
Maxim Kochetkov
Contributor
Topic creator
registered since: 28.10.2010
Posts: 129
В редакторе пользовательского интерфейса собранного с Qt5 некорректно работает окно редактирования атрибутов виджета:
Простые атрибуты (Описание, Активный, Включен, ...) редактируются нормально.
Составные атрибуты (Геометрия, Помощь, Фон, ... ) при клике мышкой в колонку "Значение" фокус улетает вверх списка, хотя при клике в колонку "Атрибут" фокус адекватно пермещается по атрибутам. Из-за того что фокус улетает - невозможно менять значение составных атрибутов. В Qt 4 все работает нормально. Проверял на разных проектах. Баг воспроизводится на всех версиях Ubuntu от 16.04 до 17.04 (x86 и x64), Qt от 5.5.1 до 5.7.1. Версия OpenSCADA - рабочая.
Written on: 03. 03. 2017 [09:06]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
В 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.
Written on: 03. 03. 2017 [10:24]
fido_max
Maxim Kochetkov
Contributor
Topic creator
registered since: 28.10.2010
Posts: 129
Другие вкладки (Обработка, Связи) с такими же деревьями работают нормально, некорректно работает только "Атрибуты". Видимо из-за того, что:

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

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

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

class InspAttr: public QTreeView
Written on: 03. 03. 2017 [10:39]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"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.
Written on: 27. 11. 2017 [10:45]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
Да, в 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.



12813