Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Копирование результатов запроса
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Разработка баз данных
peleduy
Делаю приложение для работы с PgSQL и не могу реализовать возможность выделения и копирования всех записей результатов запроса для переноса в текстовый редактор в частности для печати и т.п. Как это возможно решить средствами QT? Возможно требуется другой элемент управления, но пока у меня не получилось, например TextEdit ничего не отображает. Подскажите пожалуйста кто знает.
Litkevich Yuriy
Тебе нужно из модели копировать данные, см. тему:
"QTableView, как бы так запросто скопировать все"
peleduy
Попробую, но мне кажется вопрос должен решаться проще.
lanz
Если попроще, можно переопределить mimeTypes и mimeData, чтобы они возвращали чистый форматированный текст.
peleduy
Цитата(lanz @ 22.12.2014, 20:21) *
Если попроще, можно переопределить mimeTypes и mimeData, чтобы они возвращали чистый форматированный текст.

Я еще не работал с mimeTypes и mimeData, если можно пожалуйста поподробнее...
Получилось вывести таблицу в текстовое поле с помощью предыдущей рекомендации (взял процедуру построчного копирования), вечером код по возможности представлю.
peleduy
query.exec("create table zeml (id int primary key, "
"date date, time interval, "
"shgr int, shmin int, dolgr int, dolmin int, "
"glub int, magn numeric, regi int)");


int Basa::copyTable() { //копирует таблицу из модели в QTextEdit
QSqlTableModel * model = new QSqlTableModel(0);
model->setTable("tbl");
model->setSort(0, Qt::AscendingOrder); //сортировка по возрастанию
model->select();
int n = model->rowCount();
QModelIndex index;
int i, j;
QString str;
for (i=0; i <= n-1; ++i)
{
if (i>0)
str += "\n";
for (j=0; j <= 9; ++j) //всего в таблице 10 полей (с 0 по 9)
{
if (j>-1)
index = model->index(i, j, QModelIndex());
QString t = model->data(index).toString();
str += t;
str += "\t"; //(убрал табуляцию в конец, чтобы таблица начиналась от края)
}
}
textqueryEdit->setText(str); //выводит таблицу в QTextEdit
return 0;
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.