crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Скрыть или удалить элемент QMenu
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 5.9.2009, 12:27
  Да это место выглядит нелогично, но на первых порах.
Когда приходит понимание того, что в панели меню (QMenuBar) находятся действия (QAction), то всё встаёт на свои места.
Гость_Nicolay Sidorov_* Дата 5.9.2009, 1:35
  короче, значит скрыть вот так:

//QMenu* menu;
menu->menuAction()->setVisible(false);

и сколько пришлось голову ломать, а ларчик просто открывался. Ну ничего в этом qt по-человечески не делается.
DEADHUNT Дата 26.7.2009, 1:30
  что-то не кто так и не ответил, а правильный ответ:
if (state)
{
    menuBar()->insertMenu(viewMenu->menuAction(), projectMenu);
    menuBar()->insertMenu(viewMenu->menuAction(), buildMenu);
    menuBar()->insertMenu(viewMenu->menuAction(), debugMenu);
}
else
{
    menuBar()->removeAction(projectMenu->menuAction());
    menuBar()->removeAction(buildMenu->menuAction());
    menuBar()->removeAction(debugMenu->menuAction());
}
SABROG Дата 24.7.2009, 11:29
 
Цитата(kwisp @ 24.7.2009, 11:51) *
Цитата(SABROG @ 24.7.2009, 11:46) *
Забавно все это, человек придумал сам для себя проблему и сам же её решил через заднее место.

вот об этом по подробнее пожалуйста.
не понял до конца.

что за человек?
что за проблема?
почему через заднее место?

:)


Автор темы. Видимо не правильно создал структуру приложения, раз приходится получать доступ к нужному QAction'у через задний проход, вместо того, чтобы хранить указатели на нужные экшены.
kwisp Дата 24.7.2009, 10:51
 
Цитата(SABROG @ 24.7.2009, 11:46) *
Забавно все это, человек придумал сам для себя проблему и сам же её решил через заднее место.

вот об этом по подробнее пожалуйста.
не понял до конца.

что за человек?
что за проблема?
почему через заднее место?

:)
SABROG Дата 24.7.2009, 10:46
 
Цитата(kwisp @ 24.7.2009, 10:39) *
а что там у автора имеет место быть это уже конкретика автора если он не знает хозяина action откуда он знает имя?

Тоже верно.

Цитата(kwisp @ 24.7.2009, 10:39) *
мир, дружба?


Забавно все это, человек придумал сам для себя проблему и сам же её решил через заднее место.
kwisp Дата 24.7.2009, 9:39
 
Цитата(SABROG @ 24.7.2009, 10:13) *
с "черной" коробкой

дык, так рассуждать то функции findChildren пустая трата времени троллей.

а что там у автора имеет место быть это уже конкретика автора если он не знает хозяина action откуда он знает имя?

я считаю что если ты пишешь программу то зачем там городить "черные" ящики, в смысле того что не знаешь кому какого хазяина назначил. и расуждать об объекте типа о нем ничего не известно не практично.
не буду рассказывать и давать ссылки о том что -- отношения parent - child в Qt очень мощная штука и на ней многое построено.

Цитата(SABROG @ 24.7.2009, 10:13) *
с "черной" коробкой

так рассуждать то тебе имена действий тогда тоже не известны однако ты как раз по нему ищешь! всё тоже самое что и parent. Что objectName() -- свойство которое может быть нулевой строкой что parent указатель который может быть нулем. в случае черного ящика ты не знаешь ни того ни другого :) а в случае если сам пишешь программу то знаешь и первое и второе и явных причин не пользоваться стандартными библиотечными функциями нет:)

ну да ладно SABROG, о чем спорим то?
каждый сделает как хочет.
спор о пустом.

мир, дружба?
SABROG Дата 24.7.2009, 9:13
 
Цитата(kwisp @ 24.7.2009, 9:33) *
QActionGroup тоже наследник QObject вроде бы проблем нет.


Но он никак не будет связан с меню или виджетом. А его родителем будет, скорее всего, класс главной формы.

Цитата
использование приведенных мною функций предполагает целенаправленное использование хозяина


Если рассматривать ситуацию с "черной" коробкой внутри которой находятся не известные родители и не известные экшены (видимо именно такая ситуация у автора темы), то варианты предложенные тобой и Юрием не применимы. Иначе, лучше воспользоваться обычным указателем на QAction, если ты его создаешь и можешь контролировать какого родителя передавать, то зачем городить огород?
kwisp Дата 24.7.2009, 8:33
 
Цитата(SABROG @ 24.7.2009, 9:25) *
parent может быть нулем или его родителем может быть QActionGroup,

конечно может(сам только потом его удаляй и всё) использование приведенных мною функций предполагает целенаправленное использование хозяина. Кому надо найти нужный action? программисту. так вот ему можно рулить action через заранее назначенного специально хозяина. QActionGroup тоже наследник QObject вроде бы проблем нет.
Цитата(SABROG @ 24.7.2009, 9:25) *
или экшен может быть использован в нескольких местах.

использование action в нескольких местах не помешает управлению через хозяина.
это как вариант или предложение, я на своем решении не настаиваю.

просто утверждаю что функции которые я привел вполне применимы к QAction как в прочем и к другим наследникам QObject.
SABROG Дата 24.7.2009, 8:25
 
Цитата(kwisp @ 24.7.2009, 9:21) *
ты привел цитату из функции addWidget.


void QWidget::addAction ( QAction * action )

parent может быть нулем или его родителем может быть QActionGroup, или экшен может быть использован в нескольких местах.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 18:41