Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: fura от Октябрь 15, 2007, 15:45



Название: QWidget и элементы
Отправлено: fura от Октябрь 15, 2007, 15:45
Здраствуйте.

Я расположил на qwidgete 10 элементов qlabel. Как мне обратиться из любого места программы к конкретному qlabel'у? Весь гугл перерыл не могу найти.

Куте тока осваиваю, так что сильно не пинайте :).

Спасибо!


Название: Re: QWidget и элементы
Отправлено: Mixolap от Октябрь 15, 2007, 16:42
а ты им имена присвоил?


Название: Re: QWidget и элементы
Отправлено: Kainit от Октябрь 15, 2007, 16:43
Цитировать
Куте тока осваиваю, так что сильно не пинайте
Это сильно чувствуется и самым разумным советом было бы КУПИТЕ КНИЖКУ!

Цитировать
Весь гугл перерыл не могу найти
Если действительно так, то книжка не поможет, увы.

А вообще, в момент создания Label-а, вы ведь пишете
new QLabel();
и никто не мешает написать QLabel *myNewLabel = new QLabel();

также можно получать лэйбел через  метод QWidget * childAt ( int x, int y ) const

также никто не мешает пройтись по списку чайлдов формы и тоже обрести искомое.

В папочке Qt есть папочка Examples в которой есть сотня нормальных примеров, и ответы на большинство вопросов начинающих.
Почему бы не почитать экзамплы?


Название: Re: QWidget и элементы
Отправлено: fura от Октябрь 15, 2007, 17:06
Цитировать
Куте тока осваиваю, так что сильно не пинайте
Это сильно чувствуется и самым разумным советом было бы КУПИТЕ КНИЖКУ!

Цитировать
Весь гугл перерыл не могу найти
Если действительно так, то книжка не поможет, увы.

А вообще, в момент создания Label-а, вы ведь пишете
new QLabel();
и никто не мешает написать QLabel *myNewLabel = new QLabel();

также можно получать лэйбел через  метод QWidget * childAt ( int x, int y ) const

также никто не мешает пройтись по списку чайлдов формы и тоже обрести искомое.

В папочке Qt есть папочка Examples в которой есть сотня нормальных примеров, и ответы на большинство вопросов начинающих.
Почему бы не почитать экзамплы?
книжка прийдет тока через месяц :(
думал пробросить через всю программу какого нибудь глобального вектора где и будут храниться QLabel* которые я ньюкаю...
а по поводу childAt - они будут динамически перемещаться(dragg'ится) пользователем(через MountEvent'ы) и где они будут находится в любой момент времени неизвестно.
вот про список чайлдов интересно, можно ли пометить при создании как нибудь эти лайблы чтобы потом в списки найти нужный?
первым делом все примеры пересмотрел + assasiant - нету(может быть пропустил но наврятли)
+ смотрел в /usr/include/qt4 тоже ничего не увидел :(


Название: Re: QWidget и элементы
Отправлено: fura от Октябрь 15, 2007, 17:10
> думал пробросить через всю программу какого нибудь глобального вектора где и будут храниться QLabel* которые я ньюкаю...
но это изврат и страдает идеология ООП и QT

> тоже ничего не увидел

естественно искал какиелибо поля id,name что нибудь вроде этого, чтобы можно было пометить лабл ...

наверное прийдется делать свой класс на основе QLabel и туда уже пихать object_name


Название: Re: QWidget и элементы
Отправлено: Пантер от Октябрь 15, 2007, 17:45
А если искать по строке? Вы же создаете QLabel для отображение строк?


Название: Re: QWidget и элементы
Отправлено: ритт от Октябрь 15, 2007, 18:32
кулабел - наследник куобжекта
куобжект поддерживает метаобъекты/метаданные
в метаданных есть свойство "наме"
                          ||
                          \/
у любого куобжекта можно узнать наме его метаобъекта

кто подскажет по какому идентификатору сохраняется/восстанавливается расположение/состояние панелей, доков и т.д. на saveState/restoreState? :)


Название: Re: QWidget и элементы
Отправлено: pastor от Октябрь 15, 2007, 18:52
+1 )))


Короче говоря, юзай

QString objectName () const
void setObjectName ( const QString & name )

и ещё глянь

QList<T> QObject::findChildren ( const QString & name = QString() ) const


Название: Re: QWidget и элементы
Отправлено: fura от Октябрь 16, 2007, 07:55
+1 )))


Короче говоря, юзай

QString objectName () const
void setObjectName ( const QString & name )

и ещё глянь

QList<T> QObject::findChildren ( const QString & name = QString() ) const

Спасибо огромное!


Название: Re: QWidget и элементы
Отправлено: Dodge от Октябрь 16, 2007, 13:21
кулабел - наследник куобжекта
куобжект поддерживает метаобъекты/метаданные
в метаданных есть свойство "наме"
                          ||
                          \/
у любого куобжекта можно узнать наме его метаобъекта

кто подскажет по какому идентификатору сохраняется/восстанавливается расположение/состояние панелей, доков и т.д. на saveState/restoreState? :)

+ к этому всему, никто не отменял методы QObject'а:
setProperty( const char * name, QVariant value );
QVariant property( const char * name );

При помощи этих методов, можно в любом объекте, класс которого наследован от QObject, хранить практически лубые данные!... в том числе и свои собственные классы или структуры.
Для последнего смотрим макрос - Q_DECLARE_METATYPE