Название: динамически создавать виджет. Отправлено: izoomer от Ноябрь 05, 2006, 22:19 Как такое сделать в qt 4.2. Linux. ?
Читаю оглавление директории. Требуется по количеству файлов в прочитаном каталоге (не постоянное количество файлов, может варьироваться) создавать столько же кнопок и на каждую кнопку определить сигнал на выполнение именно того файла с которого создана кнопка. Вопрос именно в динамическом создании неопределенного количества кнопок (или других виджетов) и каждой со своим слотом. Спасибо. Название: динамически создавать виджет. Отправлено: Dendy от Ноябрь 05, 2006, 22:32 Можно сделать один слот для всех кнопок. А от кого пришёл сигнал получать через QObject::sender():
Код: QString file_name = ...; Можно для каждой кнопки создавать свой обьект, которьІй будет принимать сигнал. В етом же обьекте будет храниться имя файла: Код: QString file_name = ...; Название: динамически создавать виджет. Отправлено: izoomer от Ноябрь 05, 2006, 22:40 Спасибо.
А каким образом будут отличаться имена объектов, т.е. как отличить затем кнопки , имена то у всех не смогут быть button , нужно ведь как то типа button_1 button_2 button_3 и так далее ... или я что то не так понимаю ? Название: динамически создавать виджет. Отправлено: Dendy от Ноябрь 05, 2006, 22:46 Всё зависит от того, что нужно получить в итоге.
Название: динамически создавать виджет. Отправлено: QCasper от Ноябрь 05, 2006, 22:58 Цитата: "izoomer" Спасибо. А каким образом будут отличаться имена объектов, т.е. как отличить затем кнопки , имена то у всех не смогут быть button , нужно ведь как то типа button_1 button_2 button_3 и так далее ... или я что то не так понимаю ? можешь названиями файлов задавать, это вообще сугубо на твое усмотрение Название: динамически создавать виджет. Отправлено: izoomer от Ноябрь 06, 2006, 00:09 а как сделать что бы каждая новая создаваемая кнопка имела имя сходное с имененем файла ?
то есть в цикле просматриваем директорию и получаем имя файла и создаем кнопку QPushButton * filename(...); как так сделать ? Название: динамически создавать виджет. Отправлено: QCasper от Ноябрь 06, 2006, 00:28 Цитата: "izoomer" а как сделать что бы каждая новая создаваемая кнопка имела имя сходное с имененем файла ? то есть в цикле просматриваем директорию и получаем имя файла и создаем кнопку QPushButton * filename(...); как так сделать ? эхх... вот Вам пища для размышления, а дальше юз ассистант: Код:
P.S. А вообще мне сдается (сугубо мое субъективное мнение), что у Вас ошибка на стадии проектирования. Попахивает плохим стилем. Может расскажете, что хотите сделать? Название: динамически создавать виджет. Отправлено: izoomer от Ноябрь 06, 2006, 10:57 хочу создавать меню динамическое из кнопок по количеству файлов в директории и на каждую кнопку назначить выполнение каждого файла. Кнопки разместить в один столбец.
добавлено спустя 23 минуты: сделал. А как теперь программно фокус переводить по кнопкам созданным таким образом ? Название: динамически создавать виджет. Отправлено: QCasper от Ноябрь 06, 2006, 14:56 Цитата: "izoomer" А как теперь программно фокус переводить по кнопкам созданным таким образом ? void QWidget::setFocus ( Qt::FocusReason reason ) в зависимости от чего нужно фокус устанавливать? |