LINUX.ORG.RU

Виджет прокрутки содержимого Qt, PyQt C++


0

1

Всем добрый вечер. Необходимо мне реализовать виджет следующего формата: Пишу сейчас на PyQt4. Я поступил следующим образом:

  • Унаследовал QPushButton и назвал его MyButton. Внутри класса установил иконку, текст. Создал еще кнопку фиксированного размере(5px,5px - та, которая крестик на кнопке) и установил ее в качестве layout. В итоге получил кнопку как на рисунке.
  • Унаследовал QWidget - MyWidget. Сделал метод addButton, который создает MyButton и добавляет его в вертикальный Layout MyWidget.
  • По нажатию на крестик (маленькая кнопка внутри большой кнопки) объект класса MyButton генерирует сигнал, по которому виджет MyWidget должен этот объект удалить

Все вроде-бы ничего, до только вот удаление объекта нельзя сделать, т.к. слот выполняется в контексте сигнала «Удали меня». Не понимаю как решить такую задачу, посоветуйте что нибудь. Так же не знаю пока как сделать так, чтобы при зажатии левой кнопки мыши на кнопке я мог прокручивать список... Подскажите пожалуйста в каком направлении двигаться.. Возможно я вовсе не правильно все начал делать. Исходники на С++ тоже принимаются (мне нету разницы на чем писать...)

QTabBar не подойдёт? Похоже на кнопки внешне, tabsClosable делает кнопкам крестик (с сигналом tabCloseRequested), QTabBar::RoundedWest или TriangularWest размещает вертикально.

Но прокрутку зажатой мышью, наверное, всё-таки придётся в унаследованном классе переопределить.

schizoid ★★★ ()
Ответ на: комментарий от Begemoth

Т.е. если я подцеплю сигнал маленькой кнопки (крестик) к слоту deleteLater() класса MyWidget, объект будет сразу же удален после того, контроль вернется в EventLoop?

energyclab ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.