Russian Qt Forum

Qt => Общие вопросы => Тема начата: DpoHro от Сентябрь 14, 2012, 11:51



Название: Как по имени переменной (QString) получить указатель на нее?
Отправлено: DpoHro от Сентябрь 14, 2012, 11:51
Набросал около 1000 QPushButton на форму, все они пронумеровались автоматически.
Мне по сети приходят состояния этих кнопок (у меня они выглядят как лампочки )) ) я должен их сделать checked или наоборот.

Соотв-но мне лениво стряпать QMap и я хочу как то проверить есть ли объект с именем

QString str = "pushbutton_"+id; // id это число.

Собственно нужен какой то магический метод преобразующий имя переменной в указатель на нее, чтобы мне потом поработать с кнопкой.


Название: Re: Как по имени переменной (QString) получить указатель на нее?
Отправлено: mutineer от Сентябрь 14, 2012, 11:58
Если строка это objectName, то поможет http://doc.crossplatform.ru/qt/4.7.x/qobject.html#findChild

Если это именно имя указателя, то такой магии нет, надо делать самому (напимер через map)


Название: Re: Как по имени переменной (QString) получить указатель на нее?
Отправлено: Bepec от Сентябрь 14, 2012, 12:00
Я б конечно посоветовал бы почитать про рисование на виджете и не насиловать комп одной тысячей кнопочек, а рисовать напрямую :)
Ну во всяком случае на моём i5 5к кнопок создаётся ммм... минуты за полторы :)


Название: Re: Как по имени переменной (QString) получить указатель на нее?
Отправлено: mutineer от Сентябрь 14, 2012, 12:02
Набросал около 1000 QPushButton на форму
...
Соотв-но мне лениво стряпать QMap

Интересная лень - тысячу кнопок на форму мышкой таскать не лениво, а QMap делать лень)))


Название: Re: Как по имени переменной (QString) получить указатель на нее?
Отправлено: DpoHro от Сентябрь 14, 2012, 13:13
Я не замечаю задержек при создании кнопок ))
Ну все ж как обычно сначала в авральном начинаем делать потом думаем как это доделывать ...


Название: Re: Как по имени переменной (QString) получить указатель на нее?
Отправлено: andrew.k от Сентябрь 14, 2012, 13:27
Я не замечаю задержек при создании кнопок ))
Ну все ж как обычно сначала в авральном начинаем делать потом думаем как это доделывать ...
"Если у вас нет времени сделать что-то правильно, где же вы найдете время, чтобы это переделать?" автор неизвестен.

Меняй подход  >:(