Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: n2o от Март 30, 2011, 13:28



Название: Генерация QTextEdit
Отправлено: 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);

Всё компилится нормально, но при открытии документа прога вылетает с ошибкой.


Название: Re: Генерация QTextEdit
Отправлено: pilot.net от Март 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);


Название: Re: Генерация QTextEdit
Отправлено: Пантер от Март 30, 2011, 13:51
Код
C++ (Qt)
QMap <QString /*name*/, QTextEdit*> edits;
edits [QString ("name_%1").arg (n++)] = new QTextEdit (this);
 
ИМХО, лучше так.

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


Название: Re: Генерация QTextEdit
Отправлено: n2o от Март 30, 2011, 14:26
Спасибо! Теперь так как хотел работает.
Одну строку подправил:
Код:
 
 QTextEdit *tmpDoc = new QTextEdit;