Russian Qt Forum
Сентябрь 29, 2024, 06:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Генерация QTextEdit  (Прочитано 4311 раз)
n2o
Гость
« : Март 30, 2011, 13:28 »

Пишу текстовый редактор для Symbian с возможностью работы с несколькими документами одновременно.
Мне нужно чтобы при создании или открытии документа автоматически создавался новый QTextEdit с уникальным именем, чтобы потом  с помощью комбобокса можно было переключаться между ними.

Вот что написал в функции открытия документа:
Код:
 QVector<QTextEdit*> doc;
Код:
            N+=1;
 QString editname="textEdit"+N;
    doc[N]->setObjectName(editname);
    doc[N]->setGeometry(0,80,350,460);
    doc[N]->setText(text);
    doc[N]->setVisible(true);

Всё компилится нормально, но при открытии документа прога вылетает с ошибкой.
Записан
pilot.net
Гость
« Ответ #1 : Март 30, 2011, 13:48 »

>>QVector<QTextEdit*> doc;
А те создавал объект doc[...] ?
= new QTextEdit(...)

>>  N+=1;
>>QString editname="textEdit"+N;
и как к стоке можно прибавить число ?

 
Код:
QVector<QTextEdit*> doc;
QString editname= textEdit + QString::number(++N);
QTextEdit tmpDoc = new QTextEdit(...);
tmpDoc->setObjectName(editname);
tmpDoc->setGeometry(0,80,350,460);
tmpDoc->setText(text);
tmpDoc]->setVisible(true);
doc.push_back(tmpDoc);
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #2 : Март 30, 2011, 13:51 »

Код
C++ (Qt)
QMap <QString /*name*/, QTextEdit*> edits;
edits [QString ("name_%1").arg (n++)] = new QTextEdit (this);
 
ИМХО, лучше так.

А можно имя запихнуть в objectName ().
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
n2o
Гость
« Ответ #3 : Март 30, 2011, 14:26 »

Спасибо! Теперь так как хотел работает.
Одну строку подправил:
Код:
 
 QTextEdit *tmpDoc = new QTextEdit;
« Последнее редактирование: Март 30, 2011, 15:13 от n2o » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.144 секунд. Запросов: 22.