Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: catprog от Октябрь 05, 2009, 11:28



Название: Копирование содержимого ячеек QTableWidget в "буфер"
Отправлено: catprog от Октябрь 05, 2009, 11:28
Как можно сделать возможной такую схему: выделяется несколько ячеек в таблице, потом Ctrl+C и вставить в Excel например?


Название: Re: Копирование содержимого ячеек QTableWidget в "буфер"
Отправлено: BaltikS от Октябрь 05, 2009, 14:20
Пример в книге Бланшета.....там про создание таблице типа Excel и там есть копирование


Название: Re: Копирование содержимого ячеек QTableWidget в "буфер"
Отправлено: catprog от Октябрь 07, 2009, 11:45
Спасибо, нашел.
Если кто еще будет искать, то в моем исполнении получилось вот так:
Код:
void MainWindow::on_myCopy()
{   
    QTableWidgetItem *tmp_cell;
    QString table_cells = "";
    QTableWidgetSelectionRange range;
    QList <QTableWidgetSelectionRange> ranges = ui->tableWidget->selectedRanges();
    if (ranges.isEmpty()) { range = QTableWidgetSelectionRange(); } else { range = ranges.first(); }
    for (int i=0;i<range.rowCount();i++)
    {
        if (i>0) { table_cells += "\n"; }
        for (int j=0;j<range.columnCount();j++)
        {
            if (j>0) { table_cells += "\t"; }
            tmp_cell = ui->tableWidget->item(range.topRow()+i,range.leftColumn()+j);
            if (tmp_cell)
            { table_cells += tmp_cell->text(); } else { table_cells += ""; }
        }
    }
    myclipboard->setText(table_cells); // заполнение буфера обмена
}