crossplatform.ru

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


  Ответ в перетаскивание группы виджетов
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
borune Дата 9.9.2014, 22:08
 
Цитата(Litkevich Yuriy @ 3.9.2014, 12:39) *
Цитата(borune @ 2.9.2014, 20:33) *
Первой идеей было использовать QDockWidget, но при перетаскивании они не меняются местами, а добавляются рядом, образуя вкладки.
меняются, поведение зависит от настроек.
Запустите "Example and Demos" выберите пункт "Demonstrations" -> "Mainwindow"
потаскайте DockWidget-ы

Прикрепленное изображение


ага, с этим понятно. еще нубский вопрос - как растянуть полученные доквиджеты на весь экран?

upd использовать лейаут) сам себе ответил.
uupd в этом случае доквиджеты двигать нельзя..
Litkevich Yuriy Дата 3.9.2014, 11:39
 
Цитата(borune @ 2.9.2014, 20:33) *
Первой идеей было использовать QDockWidget, но при перетаскивании они не меняются местами, а добавляются рядом, образуя вкладки.
меняются, поведение зависит от настроек.
Запустите "Example and Demos" выберите пункт "Demonstrations" -> "Mainwindow"
потаскайте DockWidget-ы

Прикрепленное изображение
FireBlack Дата 2.9.2014, 22:41
 
Цитата(borune @ 2.9.2014, 19:23) *
Хотелось бы все-таки использовать мышь для решения задачи.

Вот, за вечер набросал примерчик. Реализовал как Drag&Drop, так и кнопочки.
К сожалению, не могу сказать что получилось просто, быстро и понятно - однако вполне работоспособно :). А вот теперь вопрос к знатокам: правильный ли у меня подход или же нет и все можно сделать проще?
borune Дата 2.9.2014, 18:23
  FireBlack, спасибо, этот вариант как крайний, так как не очень хочется создавать еще кнопки (там и так места мало), причем предложенный вариант не совсем оптимален с точки зрения удобства пользователя. Если в списке будет не две-три группы, а чуть больше, то представьте, сколько перестановок придется сделать пользователю, чтоб переместить виджет в нужное место (например, если групп 10, и надо перенести 1ую группу на 10ое место - нужно 9 раз нажать кнопку "опустить виджет", согласитесь, не самое оптимальное решение). Хотелось бы все-таки использовать мышь для решения задачи.
FireBlack Дата 2.9.2014, 17:57
 
Цитата(borune @ 2.9.2014, 18:33) *
Задача состоит в том, чтоб дать возможность пользователю менять местами группы.

Если делать как проще, то QBoxLayout (и все его наследники) позволяют исключить требуемый виджет из компоновки и заново добавить в нужное место. А пользователю предоставить две кнопочки "поднять виджет" и "опустить виджет".
borune Дата 2.9.2014, 17:33
  приветствую, камрады.

Таск следующий - главное окно содержит компоновщики виджетов, которые группируют виждеты в неком порядке (пускай будет вертикальном). Т.е. есть несколько групп виджетов, которые (группы) располагаются друг под другом. Задача состоит в том, чтоб дать возможность пользователю менять местами группы. Виждеты внутри группы перемещаться при этом друг относительно друга не должны.

Как это реализовать?

Первой идеей было использовать QDockWidget, но при перетаскивании они не меняются местами, а добавляются рядом, образуя вкладки. Делать драг-дроп с расчетом координат всех виджетов как-то совсем не хочется. Как лучше сделать?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 15:03