Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Попробовал сделать форму унаследованную от QWidget - она появляется в левом верхнем углу вызвавшей формы и не реагирует на свойство geometry, а так, то что надо - заголовка нет, находится внутри вызвавшей формы и перемещается вместе с ней. Попробовал от QFrame - получил самостоятельное окно, живущее свой жизнью - явно не то. Как правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2011, 17:18 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
QToolTip? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2011, 17:56 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Dymanovsky, а приведите кодик, а люди поправят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2011, 18:51 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
QToolTip, я так понял выводит только форматированный текст. код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Хочется чего-то вроде см. вложение. Только чтоб была видна только панель, без оконной рамки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 08:39 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Сделал, но хотелось бы привязку к окну и его координатам, а не к рабочему столу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 09:30 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Более-менее добился желаемого результата: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 10:28 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Dymanovsky, а зачем ты при создании connectingSettings кастуешь this к QFrame? Хрустальный шар мне подсказывает, что и без каста он должен this принять спокойно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 11:19 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Спасибо большое ребят, давно искал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 12:55 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Теперь появилась другая проблема - когда родительское окно уходит на задний план, виджет остаётся поверх всех окон. Неужели и это надо прописывать вручную? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 13:59 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Если я правильно понимаю что именно ты хочешь, то достаточно сделать самостоятельное окно (QWidget) с флагами setWindowFlags(Qt::Popup); Оно появится в левом-верхнем углу экрана и его можно будет сдвинуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 18:18 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Так я уже пробовал в начале. Dymanovsky Код: plaintext Подумаю. Может верну. Qt::Popup при щелчке вне этого окна, сворачивании, разворачивании окна и пр. исчезает, а мой вариант висит пока не отожмут кнопочку или не нажмут соседнюю с другими настройками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 20:44 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
DymanovskyТак я уже пробовал в начале. Dymanovsky Код: plaintext Подумаю. Может верну. Qt::Popup при щелчке вне этого окна, сворачивании, разворачивании окна и пр. исчезает, а мой вариант висит пока не отожмут кнопочку или не нажмут соседнюю с другими настройками. На самом деле там все достаточно просто. Смотри аттач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 22:11 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
Благодарю, но работает точно также, как в сообщении №5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 22:40 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
DymanovskyБлагодарю, но работает точно также, как в сообщении №5.ээээ.... А там какие-то страшные рассчеты и приведение типов зачем-то... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2011, 23:39 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
А страшные расчёты там потому, что в средах типа Borland'а и MS Visual Studio в основе линейных размеров компонента лежит длина и ширина. Если изменять там top и left она сохраняется, а объект перемещается. В Qt за основу берутся координаты левого верхнего угла и правого нижнего. Если изменить top и left, то right и bottom останутся на месте, поэтому их тоже надо пересчитывать. Я сначала сделал как в примере и не мог понять: почему если я задаю координаты вручную в недалеко от левого верхнего угла рабочего стола - окно появляется, но ущербное (компоненты не вписываются в его границы), а если там где надо, то не появляется вовсе. Потом добился появления окна в нужном месте, но при перемещении основной формы, перемещался только левая и верхняя граница всплывающего окна (левый верхний угол), а правый оставался на месте. К тому же при Qt::Popup окно нельзя передвинуть, свернуть, развернуть, без автозакрытия всплывающего окна. Поэтому решил в пользу Qt::QWidget ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2011, 00:28 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
DymanovskyА страшные расчёты там потому, что в средах типа Borland'а и MS Visual Studio в основе линейных размеров компонента лежит длина и ширина. Если изменять там top и left она сохраняется, а объект перемещается. В Qt за основу берутся координаты левого верхнего угла и правого нижнего. Если изменить top и left, то right и bottom останутся на месте, поэтому их тоже надо пересчитывать. Я сначала сделал как в примере и не мог понять: почему если я задаю координаты вручную в недалеко от левого верхнего угла рабочего стола - окно появляется, но ущербное (компоненты не вписываются в его границы), а если там где надо, то не появляется вовсе. Потом добился появления окна в нужном месте, но при перемещении основной формы, перемещался только левая и верхняя граница всплывающего окна (левый верхний угол), а правый оставался на месте.ээээ... Ну опаньки. В Qt такие расчеты уже не нужны. В Qt для перемещения виджета (и любого потомка от виджета, в том числе и окна) достаточно запустить один метод move(); DymanovskyК тому же при Qt::Popup окно нельзя передвинуть, свернуть, развернуть, без автозакрытия всплывающего окна. Поэтому решил в пользу Qt::QWidgetВообще-то, Qt::Popup это всего-лишь флаг для Qt::QWidget... А вот зачем эти всплывающие окна таскать я не понял. Если я правильно понимаю твою дизайнерскую идею, то это должны быть "окна выпадающие из кнопки на тулбаре" так? Тогда их таскать не нужно и Qt::Popup самый подходящий флаг. А если хочется окна с настройками таскать, то делай их на основе QDockWidget и сможешь их и таскать и накладывать друг на друга и вообще отрывать от главного окна приложения и запускать в свободное плаванье как отдельное окно. С док-окнами много чего можно вкусного делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2011, 00:45 |
|
||
|
Qt Как сделать всплывающую панельку в произвольном месте формы?
|
|||
|---|---|---|---|
|
#18+
White OwlDymanovskyТак я уже пробовал в начале. пропущено... Подумаю. Может верну. Qt::Popup при щелчке вне этого окна, сворачивании, разворачивании окна и пр. исчезает, а мой вариант висит пока не отожмут кнопочку или не нажмут соседнюю с другими настройками. На самом деле там все достаточно просто. Смотри аттач. Спасибо за код! Одна поправка: лучше наследовать классы с popup не от QWidget, а от QFrame. Тогда всплывающие окошки лучше выглядят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2013, 07:59 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=37319832&tid=2020221]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 181ms |

| 0 / 0 |
