Jak získat přístup k mateřské widgetu na qt?

hlasů
5

Jsem zdědil QTreeWidget (tzv PackList) třídu a její mateřská je KXmlGuiWindow. Jak mohu získat přístup k slotů mateřského podniku?

Snažil jsem se GetParent () -> mySlot () ze třídy QTreeWidget ale mám

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

Ví někdo, správný způsob? dík

Položena 09/12/2008 v 14:51
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Nejsem si jistý, že jsem plně pochopit svůj dotaz.

Nicméně, můžete získat přístup k nadřazené widget widget s parentWidget () .

Pak byste měli být schopni volat jakékoliv veřejné slot:

parentWidget()->a_slot();
Odpovězeno 09/12/2008 v 15:16
zdroj uživatelem

hlasů
11

Pokud víte, že třídu mateřské společnosti, budete muset házet parentWidget () k této třídě a obraťte se na slot. Mějte na paměti, ať už je to automat dělá žádný rozdíl v tomto případě, nebo ne. Ty jsou jen volání metody.

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

Můžete uskutečnění hovoru bez obsazování zapojením svůj signál do slotu.

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

A konečně, můžete použít QMetaObject :: invokeMethod říkat, pokud nechcete, aby ji obsazení. To je asi zbytečná.

Odpovězeno 11/12/2008 v 03:21
zdroj uživatelem

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