Скрыть или удалить элемент QMenu, как? |
Здравствуйте, гость ( Вход | Регистрация )
Скрыть или удалить элемент QMenu, как? |
kwisp |
24.7.2009, 8:33
Сообщение
#11
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
parent может быть нулем или его родителем может быть QActionGroup, конечно может(сам только потом его удаляй и всё) использование приведенных мною функций предполагает целенаправленное использование хозяина. Кому надо найти нужный action? программисту. так вот ему можно рулить action через заранее назначенного специально хозяина. QActionGroup тоже наследник QObject вроде бы проблем нет. или экшен может быть использован в нескольких местах. использование action в нескольких местах не помешает управлению через хозяина. это как вариант или предложение, я на своем решении не настаиваю. просто утверждаю что функции которые я привел вполне применимы к QAction как в прочем и к другим наследникам QObject. |
|
|
SABROG |
24.7.2009, 9:13
Сообщение
#12
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
QActionGroup тоже наследник QObject вроде бы проблем нет. Но он никак не будет связан с меню или виджетом. А его родителем будет, скорее всего, класс главной формы. Цитата использование приведенных мною функций предполагает целенаправленное использование хозяина Если рассматривать ситуацию с "черной" коробкой внутри которой находятся не известные родители и не известные экшены (видимо именно такая ситуация у автора темы), то варианты предложенные тобой и Юрием не применимы. Иначе, лучше воспользоваться обычным указателем на QAction, если ты его создаешь и можешь контролировать какого родителя передавать, то зачем городить огород? |
|
|
kwisp |
24.7.2009, 9:39
Сообщение
#13
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
с "черной" коробкой дык, так рассуждать то функции findChildren пустая трата времени троллей. а что там у автора имеет место быть это уже конкретика автора если он не знает хозяина action откуда он знает имя? я считаю что если ты пишешь программу то зачем там городить "черные" ящики, в смысле того что не знаешь кому какого хазяина назначил. и расуждать об объекте типа о нем ничего не известно не практично. не буду рассказывать и давать ссылки о том что -- отношения parent - child в Qt очень мощная штука и на ней многое построено. с "черной" коробкой так рассуждать то тебе имена действий тогда тоже не известны однако ты как раз по нему ищешь! всё тоже самое что и parent. Что objectName() -- свойство которое может быть нулевой строкой что parent указатель который может быть нулем. в случае черного ящика ты не знаешь ни того ни другого а в случае если сам пишешь программу то знаешь и первое и второе и явных причин не пользоваться стандартными библиотечными функциями нет ну да ладно SABROG, о чем спорим то? каждый сделает как хочет. спор о пустом. мир, дружба? Сообщение отредактировал kwisp - 24.7.2009, 9:40 |
|
|
SABROG |
24.7.2009, 10:46
Сообщение
#14
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
|
|
|
kwisp |
24.7.2009, 10:51
Сообщение
#15
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
|
|
|
SABROG |
24.7.2009, 11:29
Сообщение
#16
|
Профессионал Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: 34 |
Забавно все это, человек придумал сам для себя проблему и сам же её решил через заднее место. вот об этом по подробнее пожалуйста. не понял до конца. что за человек? что за проблема? почему через заднее место? Автор темы. Видимо не правильно создал структуру приложения, раз приходится получать доступ к нужному QAction'у через задний проход, вместо того, чтобы хранить указатели на нужные экшены. |
|
|
DEADHUNT |
26.7.2009, 1:30
Сообщение
#17
|
Активный участник Группа: Участник Сообщений: 430 Регистрация: 15.4.2009 Пользователь №: 686 Спасибо сказали: 26 раз(а) Репутация: 2 |
что-то не кто так и не ответил, а правильный ответ:
Сообщение отредактировал DEADHUNT - 26.7.2009, 13:10 |
|
|
Гость_Гость_Nicolay Sidorov_*_* |
5.9.2009, 1:35
Сообщение
#18
|
Гости |
короче, значит скрыть вот так:
//QMenu* menu; menu->menuAction()->setVisible(false); и сколько пришлось голову ломать, а ларчик просто открывался. Ну ничего в этом qt по-человечески не делается. |
|
|
Litkevich Yuriy |
5.9.2009, 12:27
Сообщение
#19
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Да это место выглядит нелогично, но на первых порах.
Когда приходит понимание того, что в панели меню (QMenuBar) находятся действия (QAction), то всё встаёт на свои места. |
|
|
Текстовая версия | Сейчас: 30.12.2024, 4:57 |