Russian Qt Forum

Qt => Вопросы новичков => Тема начата: PulSar.CE3194694 от Февраль 18, 2013, 13:49



Название: Как сделать popup виджет?
Отправлено: PulSar.CE3194694 от Февраль 18, 2013, 13:49
Добрый день.
Может кто поможет, как делается popup виджет? Именно виджет, а не меню. Нужно поведение, наподобие менюшки от ПКМ (щелкнул в другом месте приложения, виджет исчез с экрана). Указатель справки Qt молчит.


Название: Re: Как сделать popup виджет?
Отправлено: _OLEGator_ от Февраль 18, 2013, 14:03
Код
C++ (Qt)
void QWidget::setWindowFlags ( Qt::WindowFlags type )
Qt::Popup


Название: Re: Как сделать popup виджет?
Отправлено: PulSar.CE3194694 от Февраль 18, 2013, 14:38
Пробовал, но никаких изменений что-то не обнаружил.

Сделал костыль через Qmenu и QWidgetAction.


Название: Re: Как сделать popup виджет?
Отправлено: Bepec от Февраль 18, 2013, 14:57
OMG.


Название: Re: Как сделать popup виджет?
Отправлено: GreatSnake от Февраль 18, 2013, 17:08
Сделал костыль через Qmenu и QWidgetAction.
Может и костыль, зато делает то что нужно) Сам так делаю.

OMG.
Это с чего такая реакция?


Название: Re: Как сделать popup виджет?
Отправлено: panAlexey от Февраль 18, 2013, 23:04
Эм...
Что было лень посмотреть как комо-бокс реализован???


Название: Re: Как сделать popup виджет?
Отправлено: GreatSnake от Февраль 19, 2013, 07:49
Эм...
Что было лень посмотреть как комо-бокс реализован???
Эм... А сам-то смотрел? И что увидел?
Я вот смотрел и не раз. И увидел не один десяток строк в приватном коде, реализующих тот же popup функционал что и QMenu.
Только вот QMenu нам этот функционал даёт бесплатно. А ты предлагаешь навоять свой велосипед. Зачем ???


Название: Re: Как сделать popup виджет?
Отправлено: panAlexey от Февраль 20, 2013, 08:26
Эм...
Что было лень посмотреть как комо-бокс реализован???
Эм... А сам-то смотрел? И что увидел?
Я вот смотрел и не раз. И увидел не один десяток строк в приватном коде, реализующих тот же popup функционал что и QMenu.
Только вот QMenu нам этот функционал даёт бесплатно. А ты предлагаешь навоять свой велосипед. Зачем ???
И смотрел и реализовывал:
http://code.google.com/p/unnstudioreport/source/browse/trunk/Report/uoColorChooser.h


Название: Re: Как сделать popup виджет?
Отправлено: _OLEGator_ от Февраль 20, 2013, 08:52
Парни, у меня когнитивный диссонанс по поводу моего ответа:
Код
C++ (Qt)
void QWidget::setWindowFlags ( Qt::WindowFlags type )
Qt::Popup

Прошу отписать почему он не подходит и не решает поставленную задачу.


Название: Re: Как сделать popup виджет?
Отправлено: GreatSnake от Февраль 20, 2013, 08:57
И смотрел и реализовывал:
http://code.google.com/p/unnstudioreport/source/browse/trunk/Report/uoColorChooser.h
Вспомнил. Мы же здесь (http://www.prog.org.ru/index.php?topic=23518.msg166321#msg166321) уже вели разговор на эту тему.
Получается ты когда-то выбрав тяжёлый и далеко не оптимальный путь предлагаешь другим пройти по нему? Зачем ???


Название: Re: Как сделать popup виджет?
Отправлено: panAlexey от Февраль 21, 2013, 12:41
И смотрел и реализовывал:
http://code.google.com/p/unnstudioreport/source/browse/trunk/Report/uoColorChooser.h
Вспомнил. Мы же здесь (http://www.prog.org.ru/index.php?topic=23518.msg166321#msg166321) уже вели разговор на эту тему.
Получается ты когда-то выбрав тяжёлый и далеко не оптимальный путь предлагаешь другим пройти по нему? Зачем ???
Для того что-бы реализовывать нестандартные виджеты, которые нужны.
К примеру календарь, калькулятор, выбор цвета, выбор рамки и т.д. и т.п.
Твое решение красиво.
Я еще раз повторюсь, что пользовался тем инструментом, который освоил.
Освоил бы больше, был бы выбор. Благодаря тебе теперь есть выбор )


Название: Re: Как сделать popup виджет?
Отправлено: GreatSnake от Февраль 21, 2013, 12:47
Ты меня не понял.
Я нисколько не осуждаю твое решение.
Мне просто непонятно, зачем советовать человеку довольно-таки сложное решение, когда он уже нашел простое?
Тем более обвинять его в лени.


Название: Re: Как сделать popup виджет?
Отправлено: panAlexey от Февраль 21, 2013, 12:56
Ты меня не понял.
Я нисколько не осуждаю твое решение.
Мне просто непонятно, зачем советовать человеку довольно-таки сложное решение, когда он уже нашел простое?
Тем более обвинять его в лени.
Согласен, насчет лени, это было некорректно. Сори.