crossplatform.ru

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


  Ответ в [РЕШЕНО] QTableView, как бы так запросто скопировать все
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Litkevich Yuriy Дата 5.5.2009, 13:45
  Запихал всё это в SVN:
http://svn.assembla.com/svn/ysoft/TableViewBuddy
Litkevich Yuriy Дата 13.4.2009, 20:47
 
Цитата(LE0N @ 14.4.2009, 0:44) *
имхо логичнее было сделать наследника от TableView
я тоже сначала так думал, но партнер удобнее (это что-то на вроде делегирования, партнёр делегирует представленю свои возможности)
LE0N Дата 13.4.2009, 20:44
  имхо логичнее было сделать наследника от TableView
И в десигнере подключать эту байду через promote
SABROG Дата 13.4.2009, 20:28
  :) я вообще сначала подумал, что это программа написанная на Qt, которая умеет такие схемы рисовать. И немного прифигел от количества необходимой работы, чтобы это реализовать.
Litkevich Yuriy Дата 13.4.2009, 19:34
 
Цитата(Kagami @ 13.4.2009, 22:56) *
Это жесть.. нарисовать такое в автокаде.. А почему нельзя было задействовать KiCAD или PCAD?
Ха-Ха.
Это сделано в P-CAD'е, просто теперь делаю КДшку (Конструкторскую Документацию), вот в Автокадоподобной софтине делаю сборочный чертёж.
Kagami Дата 13.4.2009, 18:56
  Немного офтопик, но не могу удержаться..
Это жесть.. нарисовать такое в автокаде.. А почему нельзя было задействовать KiCAD или PCAD?
Litkevich Yuriy Дата 13.4.2009, 15:10
 
Цитата(SABROG @ 13.4.2009, 18:40) *
Это Qt надо пересобирать?
нет, если ты про замечание, то речь идет об изменении поведения твоего представления после установки пртнёра. См. Исходник его.
Там еще надо выяснить насчет неудаляемого ручную объекта TableViewBuddy. Но пока времени нет. Я вон какой фигнёй занимаюсь
SABROG Дата 13.4.2009, 14:40
  Это Qt надо пересобирать?
Litkevich Yuriy Дата 13.4.2009, 14:01
  Сваял вспомогательный класс TableViewBuddy, цепляющийся к табличному представлению, чтобы код всякий раз не копировать.
Прикрепленный файл  TableViewBuddy.zip ( 10.25 килобайт ) Кол-во скачиваний: 325

Используется так
pro-файл:
#========= Dependency ==============
#    --- Qt ---
...
#    --- External ---
include(./TableViewBuddy/tableviewbuddy.pri)
В данном примере в каталоге с иходником лежит катлог с TableViewBuddy

В коде:
#include "tableviewbuddy.h"
TableViewBuddy *buddy = new TableViewBuddy(ui->tableView);


Пока работает только копирование, в планах есть развивать это дело.

Внимание!
!!!!!!!!! Меняет поведение контекстного меню представления !!!!!!!!!!!
Litkevich Yuriy Дата 30.1.2009, 21:15
  рационализировал определение границ диаппазона, но использую только первый выделенный диаппазон:
код
void Browser::Copy()
{
  QModelIndex    index;
  unsigned int    minrow, mincolumn;
  unsigned int    maxrow, maxcolumn;
  unsigned int    i, j;
  QString        str;


    // Ищем минимумы и максимумы
    const QItemSelection ranges = table->selectionModel()->selection();
    // используем только первую выделенную область
    minrow = ranges.at(0).top();
    mincolumn = ranges.at(0).left();
    maxrow = ranges.at(0).bottom();
    maxcolumn = ranges.at(0).right();

    qDebug() << "Copy, FROM" << QString("(%1,%2)").arg(minrow).arg(mincolumn)
             << "TO" << QString("(%1,%2)").arg(maxrow).arg(maxcolumn);
    
    // Само копирование
    for (i=minrow; i <= maxrow; ++i)
    {
        if (i>minrow)
            str += "\n";
        for (j=mincolumn; j <= maxcolumn; ++j)
        {
            if (j>mincolumn)
                str += "\t";
            index = table->model()->index(i, j, QModelIndex());
            QString t = table->model()->data(index).toString();
            str += t;
        }
    }
    qDebug() << "Copy:\n" << str;
    QApplication::clipboard()->setText(str);
}
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 27.4.2024, 21:23