Как получить доступ к родительский виджет на Qt?

голоса
5

Я наследственное QTreeWidget (так называемый PackList) класс и его родителей является KXmlGuiWindow. Как я могу получить доступ к слотам родителя?

Я пробовал GetParent () -> mySlot () из класса QTreeWidget, но у меня есть

error: no matching function for call to 'PackList::mySlot()'

Кто-нибудь знает правильный путь? благодаря

Задан 09/12/2008 в 14:51
источник пользователем
На других языках...                            


2 ответов

голоса
11

Если вы знаете, класс родителя, вам придется бросить parentWidget () для этого класса, а затем вызвать ваш слот. Имейте в виду, действительно ли он никогда слот имеет никакого значения в данном случае. Вы просто вызываете метод.

((KXmlGuiWindow*)parentWidget())->mySlot();

Вы можете сделать вызов без литья по разводке вашего сигнала к слоту.

connect( this, SIGNAL(mySignal()), parentWidget(), SLOT(mySlot()) );

И, наконец, вы можете использовать QMetaObject :: InvokeMethod назвать это , если вы не хотите , чтобы бросить его. Это, вероятно , слишком много.

Ответил 11/12/2008 в 03:21
источник пользователем

голоса
1

Я не уверен, что я полностью понимаю ваш вопрос.

Тем не менее, вы можете получить доступ к родительскому виджету виджета с parentWidget () .

Затем, вы должны быть в состоянии вызвать любой открытый слот:

parentWidget()->a_slot();
Ответил 09/12/2008 в 15:16
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more