Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Dima1985 от Август 02, 2011, 20:17



Название: QTableWidget просмотр текста который не помещаются в ячейку
Отправлено: Dima1985 от Август 02, 2011, 20:17

Здравствуйте
Проблема в следующем:
Есть таблица QTableWidget. В ней есть столбики, размера которых менять нельзя.
Но строчки некоторых ячеек не помещаются  в ячейки, как сделать так, чтобы при наводки мыши на ячейку с длинным текстом, значения ячейки прорисовывалось на соседних ячейках полностью?


Название: Re: QTableWidget просмотр текста который не помещаются в ячейку
Отправлено: kambala от Август 02, 2011, 20:26
устанавливать ячейкам tooltip подойдет?


Название: Re: QTableWidget просмотр текста который не помещаются в ячейку
Отправлено: Dima1985 от Август 02, 2011, 20:41
До но он не выводит весь текст почему-то.
Код:
void MainWindow::setTableWidjetSet()
{
    variables var;
    for (int r = 0; r <  VARSGENERATORS_END - VARSGENERATORS_START; r++)
    {
        ui->tableWidget->item(r,0)->setText(var.Variables[r+VARSGENERATORS_START].Name);
        QFontMetrics fm =QFontMetrics (ui->tableWidget->item(r,0)->font());
        int wi  = fm.boundingRect(var.Variables[r+VARSGENERATORS_START].Name).width();
        int wc = ui->tableWidget->columnWidth(0);
        if ( wi > wc)
        {
            ui->tableWidget->item(r,0)->setData(Qt::ToolTipRole,var.Variables[r+VARSGENERATORS_START].Name);
        }
        else
            ui->tableWidget->item(r,0)->setToolTip("");
        ui->tableWidget->item(r,2)->setText(var.Variables[r+VARSGENERATORS_START].Caption);
        ui->tableWidget->setRowHidden(r,var.Variables[r+VARSGENERATORS_START].Visible ? false : true);
    }
}


Название: Re: QTableWidget просмотр текста который не помещаются в ячейку
Отправлено: Dima1985 от Август 02, 2011, 20:56
если делаю так:
Код:
ui->tableWidget->item(r,0)->setData(Qt::ToolTipRole,
                                                   QString(var.Variables[r+VARSGENERATORS_START].Name) +
                                                   QString("                                         "));
то отображается весь текст и несколько пробелов
Где тут проблема? Как ее решить?

если делаю для всевого окна:
Код:
setToolTip("123456789_123456789");
выводит полностью текст
если для виджета:
Код:
ui->tableWidget->setToolTip("123456789_123456789");
выводит : "123456789_12345"

Где тут грабли?

причина страного поведения нашлась:
tableWidget установлен на QTabWidget. А в  QTabWidget был установлен свой фонт с помощью Design і ето давало ошибку измерения размера строки