crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Копирование результатов запроса, В TableView нет возможности скопировать все записи
Гость_peleduy_*
сообщение 20.12.2014, 12:33
Сообщение #1





Гости








    


Делаю приложение для работы с PgSQL и не могу реализовать возможность выделения и копирования всех записей результатов запроса для переноса в текстовый редактор в частности для печати и т.п. Как это возможно решить средствами QT? Возможно требуется другой элемент управления, но пока у меня не получилось, например TextEdit ничего не отображает. Подскажите пожалуйста кто знает.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 20.12.2014, 14:37
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9656
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Тебе нужно из модели копировать данные, см. тему:
"QTableView, как бы так запросто скопировать все"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_peleduy_*
сообщение 21.12.2014, 8:21
Сообщение #3





Гости








    


Попробую, но мне кажется вопрос должен решаться проще.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 22.12.2014, 20:21
Сообщение #4


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Если попроще, можно переопределить mimeTypes и mimeData, чтобы они возвращали чистый форматированный текст.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_peleduy_*
сообщение 23.12.2014, 7:29
Сообщение #5





Гости








    


Цитата(lanz @ 22.12.2014, 20:21) *
Если попроще, можно переопределить mimeTypes и mimeData, чтобы они возвращали чистый форматированный текст.

Я еще не работал с mimeTypes и mimeData, если можно пожалуйста поподробнее...
Получилось вывести таблицу в текстовое поле с помощью предыдущей рекомендации (взял процедуру построчного копирования), вечером код по возможности представлю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_peleduy_*
сообщение 23.12.2014, 17:07
Сообщение #6





Гости








    


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;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2019, 12:53