Здравствуйте, гость ( Вход | Регистрация )
JohnZ | Дата 25.9.2014, 12:54 |
QFrame, QScrollArea из очевидного. Но вообще вопрос, что считать контейнером В новой версии функции учёл ещё QFrame, а QScrollArea нет, т.к. не смог придумать его приминения в своём проекте Контейнером видимо мне придётся считать всё, что юзер сделает контейнером lanz, будет время, загляните plz в ветку "Виджет из QT3 в QT4". |
|
lanz | Дата 24.9.2014, 18:51 |
QFrame, QScrollArea из очевидного. Но вообще вопрос, что считать контейнером | |
JohnZ | Дата 24.9.2014, 11:28 |
Нашлось решение, пока объяснял что мне нужно ... В своём класе реализовать bool isContainer( QObject *obj ) , в котором "вшиты" имена контейнеров из Дизайнера. Не совсем изящное решение, но пока устроит ...
Кто в курсе, подскажите, что НЕ учтено ??? |
|
OKTA | Дата 24.9.2014, 11:08 |
Только рекурсивно опрашивать | |
JohnZ | Дата 24.9.2014, 11:04 |
Дык мне нужно, как указано в 1-й месаге ветки, определить Контейнеры, для их дальнейшего пока не-рекурсивного опроса на предмет содержащихся в них Widget-ов и их динамич-х св-в. Делается всё в цикле, и поэтому он уж слишком громоздким получается ... |
|
OKTA | Дата 24.9.2014, 10:58 |
Ну так, layout не является виджетом и таким образом ты их отсеешь. | |
JohnZ | Дата 24.9.2014, 10:52 |
К сожалению не подходит, т.к. он отвечает о Widget-е а не контейнере ... | |
OKTA | Дата 24.9.2014, 9:58 |
А что насчет этого? bool QObject::isWidgetType () const | |
JohnZ | Дата 24.9.2014, 0:11 |
Теоретически любой объект может быть контейнером, поэтому вам просто нужно рекурсивно опрашивать всех детей. КанЭшна может, но вотЪ признака, типа bool isContainer() к сожалению почему-то не имеет. Ведь кучу текста можно было-бы сэкономить :-( Видимо придётся допиливать либу :-) Я предполагал, что кто-либо уже сталкивался с контейнерами, и опрашивал их по-иному, а не по имени ... Так или иначе вам придется спрашивать имя, чтобы отделить например Layout'ы. Дык пока так и делаю, но хотелось сделать более универсальное решение ... Но ничего плохого в этом не вижу .) Вы же получаете dynamicPropertyNames. Да, т.к. исходя именно из dynamicProperty, и строится дальнейший алгоритм ... |
|
lanz | Дата 23.9.2014, 19:12 |
Теоретически любой объект может быть контейнером, поэтому вам просто нужно рекурсивно опрашивать всех детей. Так или иначе вам придется спрашивать имя, чтобы отделить например Layout'ы. Но ничего плохого в этом не вижу .) Вы же получаете dynamicPropertyNames. |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 28.3.2024, 20:38 |