crossplatform.ru

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

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> Скрыть или удалить элемент QMenu, как?
kwisp
  опции профиля:
сообщение 24.7.2009, 8:33
Сообщение #11


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(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, 9:13
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


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


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

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


Если рассматривать ситуацию с "черной" коробкой внутри которой находятся не известные родители и не известные экшены (видимо именно такая ситуация у автора темы), то варианты предложенные тобой и Юрием не применимы. Иначе, лучше воспользоваться обычным указателем на QAction, если ты его создаешь и можешь контролировать какого родителя передавать, то зачем городить огород?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 24.7.2009, 9:39
Сообщение #13


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


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

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

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

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

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

так рассуждать то тебе имена действий тогда тоже не известны однако ты как раз по нему ищешь! всё тоже самое что и 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:39) *
а что там у автора имеет место быть это уже конкретика автора если он не знает хозяина action откуда он знает имя?

Тоже верно.

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


Забавно все это, человек придумал сам для себя проблему и сам же её решил через заднее место.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 24.7.2009, 10:51
Сообщение #15


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(SABROG @ 24.7.2009, 11:46) *
Забавно все это, человек придумал сам для себя проблему и сам же её решил через заднее место.

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

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

:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 24.7.2009, 11:29
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(kwisp @ 24.7.2009, 11:51) *
Цитата(SABROG @ 24.7.2009, 11:46) *
Забавно все это, человек придумал сам для себя проблему и сам же её решил через заднее место.

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

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

:)


Автор темы. Видимо не правильно создал структуру приложения, раз приходится получать доступ к нужному QAction'у через задний проход, вместо того, чтобы хранить указатели на нужные экшены.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DEADHUNT
  опции профиля:
сообщение 26.7.2009, 1:30
Сообщение #17


Активный участник
***

Группа: Участник
Сообщений: 430
Регистрация: 15.4.2009
Пользователь №: 686

Спасибо сказали: 26 раз(а)




Репутация:   2  


что-то не кто так и не ответил, а правильный ответ:
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());
}


Сообщение отредактировал 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), то всё встаёт на свои места.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 30.12.2024, 4:57