Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ QTabWidget и элементы формы на вкладках

Автор: ASK 12.10.2010, 8:43

Всем доброго времени суток. Недавно открыл для себя Qt, сижу по-тихоньку ковыряю его. Появился такой вопрос - как получить доступ к элементу формы (пусть будет QTextEdit), находящемся на одной из вкладок?

Автор: Алексей1153 12.10.2010, 8:46

а каким образом ты создавал элемент ? Если сам создавал - всегда есть указатель

Автор: ASK 12.10.2010, 9:30

Допустим:

QTabWidget *tabs = new QTabWidget;
tabs->addTab(new QTextEdit,"New");

Автор: Алексей1153 12.10.2010, 9:58

ASK, ну так сохрани указатель - ты его "забыл" :) А как ты хочешь узначать контрол ещё ? Можно, конечно, какой-нибудь атрибут заполнить. Но ИМХО, лучше мапа зверя нет (когда контролов много)

мап - это std::map то есть

Автор: ASK 12.10.2010, 11:06

В развёрнутом виде, оно выглядит примерно так:

QTextEdit *textEdit = new QTextEdit;
QTabWidget *tabs = new QTabWidget;
int id = tabs->addTab(textEdit,"New");


Я как понимаю, указатель - это id вкладки, который возвращается при вызове tabs->addTab() в данном случае?

Автор: Алексей1153 12.10.2010, 12:22

указатель на контрол у тебя

QTextEdit *textEdit

Автор: ASK 12.10.2010, 12:37

Ну, с доступом к содержимому QTextEdit проблем нет. Я немного неправильно сформировал вопрос :rolleyes:
Проблемы с доступом появляются, когда количество закладок, содержащих QTextEdit, больше одной

Автор: Алексей1153 12.10.2010, 12:59

ASK, сформулируй основную задачу, а то вариантов может быть много ) Чего гадать то

Автор: ASK 12.10.2010, 13:07

Решил ради опыта для начала написать текстовый редактор (наверно многие начинали с этого). С однодокументным режимом всё получилось. Решил реализовать многодокументный режим на базе вкладок (типа NPP и т.д.) - с вкладками разобрался. Вопрос появился - как получить доступ к содержимому тестового поля текущей вкладки (для сохранения текста в файл) :) Собственно, вся задача))

Автор: Алексей1153 12.10.2010, 13:09

ASK, тогда так: создай виджет редактора одного документа. Со всеми нужными контролами. И на каждую вкладку положи один такой виджет. И всё

Автор: ASK 12.10.2010, 13:17

Ок, попробую вечерком, спасибо большое :rolleyes:

Автор: ASK 12.10.2010, 14:01

Спасибо большое, вопрос решён. :) Просто я не думал, что обращение идёт к экземпляру QTextEdit текущей вкладки.

Автор: Алексей1153 12.10.2010, 18:51

какое такое обращение ? Не понимяу.

Цитата(ASK @ 12.10.2010, 17:01) *
Группа: Неактивирован

а это ты по ссылке из письма забыл перейти, что ли )

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)