Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Май 17, 2016, 12:06



Название: Drop into QGridLayout
Отправлено: Igors от Май 17, 2016, 12:06
Добрый день

Типично шкурное желание "попастись" :) Есть QGridLayout и юзер может "дропать" в него иконки, при этом новые виджеты должны вставляться в лайоут. Надо подсветить пр-к куда будет вставлено и найти его грид-индекс. Возможно юзер захочет вставить вмджет в еще пустую строку/столбец.

Ничего кроме QGridLayout::cellRect не нашел, и что делать если тычет за пределами и/или между строками/столбцами - хз. Неужели опять писать велосипед?  :'( Может невнимательно читал документацию ??? Ну ткните, ткните носиком  :)

Спасибо


Название: Re: Drop into QGridLayout
Отправлено: GreatSnake от Май 17, 2016, 12:47
Может задействовать QListWidget с его встроенным d'n'd?


Название: Re: Drop into QGridLayout
Отправлено: Igors от Май 18, 2016, 09:08
Может задействовать QListWidget с его встроенным d'n'd?
Не помню может ли он иметь пустые строки/столбцы. Подсветка "куда будет вставлено" и отслеживания мест между строками/столбцами - видимо все равно руками.

Задача рисовать эл-ты виджеты соединенные между собой стрелками (типа схемы). Вроде несложно, но некоторые эл-ты могут быть сами схемой и раскрываться (expand/collapse). Поэтому выбрал QGridLayout.


Название: Re: Drop into QGridLayout
Отправлено: Racheengel от Май 18, 2016, 09:40
Делал подобное с QTreeWidget. Оно "само" умеет дропать между строками (за столбцы не  скажу, не нужно было).


Название: Re: Drop into QGridLayout
Отправлено: Igors от Май 20, 2016, 08:51
Парюсь уже неск дней. Помаленьку продвигается, но конца-края не видно. Как-то неудачно ложатся вставки/удаления - все время приходится много писать, под ногами путается QLayoutItem. Попробую сформулировать всю задачу

Есть виджет в который мышей вставляются/удаляются айтемы (тоже виджеты). Т.е. по существу "таблица", но при этом:
  - строки/столбцы не переносятся автоматычно на след строку/столбец

  - вставка может выполняться между строками/столбцами а также за пределами таблицы. Напр сейчас последняя ячейка (5, 5), но юзер может дропнуть в "ячейку" (10, 10) или (-2, -2) - ну вот хочет он оставить пустое место

  - айтемы-виджеты могут быть collapsed/expanded с тем же (подобным) содержимым что и вся таблица

Вроде все "очень банально", но что-то кода получается много...