Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » PyQt таблица с подвижными элементами [RSS Feed]

#1 Апрель 15, 2013 11:44:39

WindeL
От:
Зарегистрирован: 2011-03-30
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt таблица с подвижными элементами

Господа, прошу помощи в создании виджета. Задача в том, чтобы сделать грид, поместить туда объекты, типа прямоугольников, с возможностью двигать эти объекты по всему гриду. Желательно, чтобы такой объект можно было поместить на границе двух ячеек, т.е. одна часть в области одной ячейки, а другая второй. Визуально должно получиться типа сетки расписаний для работников.
Не могу понять, от чего лучше наследоваться и что переопределять, чтобы получить такой функционал…
Предполагаю, что стоит смотреть в сторону QAbstractModel + ATableView + Drag'n'Drop и копаться в QAbstractItemModel.



Офлайн

#2 Апрель 15, 2013 18:10:51

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

PyQt таблица с подвижными элементами

WindeL
Желательно, чтобы такой объект можно было поместить на границе двух ячеек, т.е. одна часть в области одной ячейки, а другая второй.
Без этого, можно было бы обойтись http://qt-project.org/doc/qt-4.8/qabstractitemdelegate.html
А с таким требованием, нужно будет переопределить QTableView.paintEvent() и в нем рисовать. Думаю, придется много чего учитывать, отключать встроенное выделение ячеек, а передвижения отлавливать в mouseEvent'ах.

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

Но я не понял, что это за данные и как это должно выглядеть.

Офлайн

#3 Апрель 16, 2013 10:16:33

WindeL
От:
Зарегистрирован: 2011-03-30
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt таблица с подвижными элементами

reclosedev, cпасибо за делегатов. Понимаю, что надо в эту сторону смотреть. Можно обойтись и жесткими границами ячеек для перемещающихся объектов. Приложил файл как примерно должно все выглядеть.



Прикреплённый файлы:
attachment schedule.png (97,7 KБ)

Офлайн

#4 Апрель 16, 2013 17:48:46

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

PyQt таблица с подвижными элементами

А, диаграмма Ганта. Тогда еще есть вариант от QTableView совсем отказаться, и рисовать все кроме хедеров самому, и сделать нормальный API, заточенный конкретно под расписание.
Или все-таки использовать делегаты и разделить месяц на 4 части.

Еще можно поискать “qt gantt chart”. Но я бегло (очень) посмотрел, попадаются только платные компоненты и вопросы.

Офлайн

#5 Апрель 17, 2013 08:43:15

WindeL
От:
Зарегистрирован: 2011-03-30
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt таблица с подвижными элементами

Да, я понял, что не надо использовать таблицу для того, для чего она не предназначена. Буду свой виджет делать.



Офлайн

  • Начало
  • » GUI
  • » PyQt таблица с подвижными элементами[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version