crossplatform.ru

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

> [РЕШЕНО] QTableView, как бы так запросто скопировать все
Litkevich Yuriy
  опции профиля:
сообщение 29.1.2009, 20:30
Сообщение #1


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

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

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




Репутация:   94  


Есть стандартное табличное представление, но в нем по умолчанию нет возможности скопировать все, просто, например, как текст с разделителями, чтобы потом воткнуть в эксель или текстовый файл. Можно ли как-то просто это реализовать?

П.С. В модели выделения я тоже ничего подходящего не нашел.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 30.1.2009, 13:39
Сообщение #2


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

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

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




Репутация:   94  


Вот моя поделка на тему копирования:
код
void Browser::Copy()
{
  QModelIndexList     indexes;
  QModelIndex        index;
  unsigned int        row, column;
  unsigned int        minrow, mincolumn;
  unsigned int        maxrow, maxcolumn;
  bool                 init = true;  
    
    indexes = table->selectionModel()->selectedIndexes();

    // Ищем минимумы и максимумы
    minrow = 0;    maxrow = 0;
    mincolumn = 0; maxcolumn = 0;
    foreach (index, indexes) {
        
        row = index.row();
        column = index.column();
        if (init)
        {
            minrow = row;
            mincolumn = column;
            init = false;
        }
        if (row < minrow) minrow = row;
        if (row > maxrow) maxrow = row;
        
        if (column < mincolumn) mincolumn = column;
        if (column > maxcolumn) maxcolumn = column;
    }
    qDebug() << "Copy, FROM" << QString("(%1,%2)").arg(minrow).arg(mincolumn)
             << "TO" << QString("(%1,%2)").arg(maxrow).arg(maxcolumn);
    
    // Само копирование
  unsigned int    i, j;
  QString        str;

    qDebug() << " i from" << minrow << "to" << maxrow;
    qDebug() << " j from" << mincolumn << "to" << maxcolumn;
    for (i=minrow; i <= maxrow; ++i)
    {
        qDebug() << "FOR i=" << i;
        if (i>minrow)
            str += "\n";
        for (j=mincolumn; j <= maxcolumn; ++j)
        {
            qDebug() << "FOR j=" << j;
            if (j>mincolumn)
                str += "\t";
            index = table->model()->index(i, j, QModelIndex());
            qDebug() << "index" << index;
            QString t = table->model()->data(index).toString();
            qDebug() << "Copy cell" << QString("(%1,%2)").arg(index.row()).arg(index.column())
                     << t;
            str += t;
        }
    }
    qDebug() << "Copy:\n" << str;
    QApplication::clipboard()->setText(str);
}

надо как-то рационализировать определение диаппазона.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Litkevich Yuriy   [РЕШЕНО] QTableView, как бы так запросто скопировать все   29.1.2009, 20:30
- - molchanoviv   Что-то наподобие описывалось в книге Бланшета и Са...   29.1.2009, 20:35
- - Litkevich Yuriy   Цитата(molchanoviv @ 29.1.2009, 23:35) Чт...   29.1.2009, 20:47
- - Litkevich Yuriy   Вот моя поделка на тему копирования: кодvoid Brows...   30.1.2009, 13:39
- - Litkevich Yuriy   рационализировал определение границ диаппазона, но...   30.1.2009, 21:15
- - Litkevich Yuriy   Сваял вспомогательный класс TableViewBuddy, цепляю...   13.4.2009, 14:01
- - SABROG   Это Qt надо пересобирать?   13.4.2009, 14:40
- - Litkevich Yuriy   Цитата(SABROG @ 13.4.2009, 18:40) Это Qt ...   13.4.2009, 15:10
- - Kagami   Немного офтопик, но не могу удержаться.. Это жесть...   13.4.2009, 18:56
- - Litkevich Yuriy   Цитата(Kagami @ 13.4.2009, 22:56) Это жес...   13.4.2009, 19:34
- - SABROG   я вообще сначала подумал, что это программа написа...   13.4.2009, 20:28
- - LE0N   имхо логичнее было сделать наследника от TableView...   13.4.2009, 20:44
- - Litkevich Yuriy   Цитата(LE0N @ 14.4.2009, 0:44) имхо логич...   13.4.2009, 20:47
- - Litkevich Yuriy   Запихал всё это в SVN: http://svn.assembla.com/svn...   5.5.2009, 13:45


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


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




RSS Текстовая версия Сейчас: 28.4.2024, 2:09