crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

bo0blik
  опции профиля:
сообщение 16.10.2009, 9:50
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 13.9.2009
Пользователь №: 1089

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем привет!

Возникла такая проблема у меня есть список из n строк:

Строка 1
Строка 2
Строка ...

Как мне преобразовать эти строки в n, к примеру, радиобутонов с названиями из строк?

Просто мне кажется что писать это с помощью статических элементов и кучи условий полнейший идиотизм.

Подскажите где копать, за код буду вообще дико благодарен.

Большое спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов (1 - 5)
ViGOur
  опции профиля:
сообщение 16.10.2009, 10:12
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Примерно так:
for( int n = 0; n < 100; n++)
{
   QString sz = QString( "Строка %1").arg(n);
   QRadioButton *button = new QRadioButton( sz[n], this);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bo0blik
  опции профиля:
сообщение 16.10.2009, 10:24
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 13.9.2009
Пользователь №: 1089

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 16.10.2009, 10:12) *
Примерно так:
for( int n = 0; n < 100; n++)
{
   QString sz = QString( "Строка %1").arg(n);
   QRadioButton *button = new QRadioButton( sz[n], this);
}


А как потом к элементу обратиться?

Минут десять назад у меня получилось следущее:

    int number = 4;
    QRadioButton *rad[number];

    for(int i = 0; i < number; i++)
    {
    rad[i] = new QRadioButton(this);
    rad[i]->setText("I'm alive bitch!");
    rad[i]->show();
    ui->verticalLayout_4->addWidget(rad[i]);
    }


Но по мне это какой-то epic fail.

И еще вопрос как лучше всего перемешать эти радио-буттоны в контейнере?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
bahus
  опции профиля:
сообщение 16.10.2009, 10:46
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 16.10.2009
Пользователь №: 1157

Спасибо сказали: 0 раз(а)




Репутация:   0  


Может поможет, я делал динамические пункты в меню. Ток одно смущает, походу там есть утечка памяти, и написано может немного коряво.

someclass.h
private:
 void addHostAction(QString &hostName);         
 void delHostAction(QString &hostName);         
 void buildHostMenu();         
 bool findHostAction(QAction *hostAction, QString &hostActionName); 

 QMenu *hostMenu;          
 QList<QAction*> hostMenuActions;


someclass.cpp
void MainWindow::addHostAction(QString &hostName) {     
 QAction *hostAction = new QAction(hostName,this);      
 connect(hostAction, SIGNAL(triggered()), this, SLOT(on_hostActionCicked()));     
 hostMenuActions.append(hostAction);     
 this->buildHostMenu(); 
} 

void MainWindow::delHostAction(QString &hostName) {    
 int j = 0;     
 QList<QAction*>::iterator i = hostMenuActions.begin();      
 while (i != hostMenuActions.end()){         
   if (findHostAction(*i,hostName)){             
     hostMenuActions.removeAt(j);             
     break;         
   }         
  ++i;         
  ++j;     
 } 
 this->buildHostMenu();
} 

void MainWindow::buildHostMenu() {     
 QList<QAction*>::const_iterator i = hostMenuActions.begin();      
 hostMenu->clear();     
 while (i != hostMenuActions.end()){         
  hostMenu->addAction(*i);         
  ++i;     
 } 
} 

bool MainWindow::findHostAction(QAction *hostAction, QString &hostActionName) {     
 if (hostAction->text() == hostActionName)         
  return true;     
 else        
  return false; 
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.10.2009, 11:06
Сообщение #5


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


bo0blik, почитай про X-solution я иногда использую.
пример есть файл str.def
X("привет")
Х("как дела?")
Х("у меня тоже ничего")
...//и так далее хоть 1000 штук

там где тебе надо получить объекты с этим самыми строками из str.def
пишешь
QList<QPushButton*> btnLst;
#define X(a) btnLst<<(new QPushButton(a));
# include "str.def"
#undef X//

ну или что то подобное.
есть и + и -.

Сообщение отредактировал kwisp - 16.10.2009, 11:07
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.10.2009, 15:34
Сообщение #6


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


bo0blik,
спасибо за "спасибо"
вообще первоисточник здесь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 29.5.2025, 15:49