Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
flerris
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
1

Инициализация массива виджетов QList<QTextBox>

04.09.2012, 10:13. Просмотров 2166. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
QVBoxLayout *qvbTextEdits=new QVBoxLayout;    
      QList<QTextEdit>* listTE=new QList<QTextEdit>;
      for (int i=0;i<reslist1.count();i++){
      QTextEdit* listTE[i]=new QTextEdit;
      qvbTextEdits->addWidget(listTE[i]);
reslist1 получает размер из функции другого класса.При компиляции ошибка:
variable-sized object 'listTE' may not be initialized

что не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2012, 10:13
Ответы с готовыми решениями:

Инициализация своих виджетов
Добрый день. Заранее спасибо за пмощь. Проблема такая - при запуске приложения...

QList<QList<QRgb>> ошибка с вложенными списками
Пишу класс, который будет производить операции над изображением (пока только...

QList создания динамического массива
Привет Всем! У меня есть вот такой кусочек кода QList&lt;QString&gt; list Как...

QList<QList<Type> >
Можно ли делать так? #include &lt;QCoreApplication&gt; #include &lt;QDebug&gt; class...

Есть ли в QT возможность перебора виджетов, как элементов массива?
возможно я не очень правильно задал вопрос, но вот что меня интересует есть...

4
Maxim Prishchepa
Эксперт С++
1925 / 1037 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
04.09.2012, 10:25 2
бред какой-то....
так, я ещё поверю...
C++ (Qt)
1
2
3
4
5
QVBoxLayout *qvbTextEdits=new QVBoxLayout;
QList<QTextEdit *>* listTE=new QList<QTextEdit *>;
for (int i=0;i<reslist1.count();i++){
listTE[i] = new QTextEdit;
qvbTextEdits->addWidget(listTE[i]);
а вообще бесплатный совет - учите С++ перед тем, как писать такую чушь...
0
flerris
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
04.09.2012, 10:48  [ТС] 3
Цитата Сообщение от l_a_m Посмотреть сообщение
бред какой-то....
так, я ещё поверю...
C++ (Qt)
1
2
3
4
5
QVBoxLayout *qvbTextEdits=new QVBoxLayout;
QList<QTextEdit *>* listTE=new QList<QTextEdit *>;
for (int i=0;i<reslist1.count();i++){
listTE[i] = new QTextEdit;
qvbTextEdits->addWidget(listTE[i]);
а вообще бесплатный совет - учите С++ перед тем, как писать такую чушь...


спасибо, Ваш код не работает,

"а вообще бесплатный совет - учите С++ перед тем, как писать такую чушь..."
что я и делаю,
0
Humanoid
Почетный модератор
9981 / 3867 / 348
Регистрация: 12.06.2008
Сообщений: 11,401
04.09.2012, 11:24 4
Зачем сам QList делать динамическим? Только лишние проблемы из-за этого. Например, если объявить две переменные
C++ (Qt)
1
2
QList<int> a;
QList<int>* b = new QList<int>;
Казалось бы, что разницы никакой... но если теперь обратиться так:
C++ (Qt)
1
2
a[2] = 10;
b[2] = 10;
...то b[2] будет ссылаться не на элемент списка, а на второй указатель, которого не существует. В общем, я советую сделать так
C++ (Qt)
1
QList<QTextEdit *> listTE;
И нельзя обращаться к элементу с каким-либо индексом, в то время как сам QList пустой. Туда надо добавлять элементы.
C++ (Qt)
1
2
3
4
5
6
QVBoxLayout *qvbTextEdits=new QVBoxLayout;    
QList<QTextEdit *> listTE;
for (int i=0;i<reslist1.count();i++){
  QTextEdit *tmp = new QTextEdit;
  listTE.append(tmp);
  qvbTextEdits->addWidget(tmp);
1
flerris
3 / 3 / 1
Регистрация: 17.08.2012
Сообщений: 145
04.09.2012, 11:38  [ТС] 5
Добавлено через 2 минуты
Цитата Сообщение от Humanoid Посмотреть сообщение
Зачем сам QList делать динамическим? Только лишние проблемы из-за этого. Например, если объявить две переменные
C++ (Qt)
1
2
QList<int> a;
QList<int>* b = new QList<int>;
Казалось бы, что разницы никакой... но если теперь обратиться так:
C++ (Qt)
1
2
a[2] = 10;
b[2] = 10;
...то b[2] будет ссылаться не на элемент списка, а на второй указатель, которого не существует. В общем, я советую сделать так
C++ (Qt)
1
QList<QTextEdit *> listTE;
И нельзя обращаться к элементу с каким-либо индексом, в то время как сам QList пустой. Туда надо добавлять элементы.
C++ (Qt)
1
2
3
4
5
6
QVBoxLayout *qvbTextEdits=new QVBoxLayout;    
QList<QTextEdit *> listTE;
for (int i=0;i<reslist1.count();i++){
  QTextEdit *tmp = new QTextEdit;
  listTE.append(tmp);
  qvbTextEdits->addWidget(tmp);
спасибо большое.Я понимала, что нужно add или append, но не работало и с ними,Всё дело в указателях,Спасибо большое ещё раз,
0
04.09.2012, 11:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2012, 11:38

'QList<QListWidgetItem*>' в 'QList<QPair<QString, QString> >*'
Перевести 'QList&lt;QListWidgetItem*&gt;' в 'QList&lt;QPair&lt;QString, QString&gt; &gt;*' ?????

Инициализация массива в GUI
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new...

QList в QList
Для удобства прикрепил рисунок, там наглядно видно что и как работает, словами...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru