Russian Qt Forum
Ноябрь 26, 2024, 15:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableWidget просмотр текста который не помещаются в ячейку  (Прочитано 3951 раз)
Dima1985
Гость
« : Август 02, 2011, 20:17 »


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

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Август 02, 2011, 20:26 »

устанавливать ячейкам tooltip подойдет?
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Dima1985
Гость
« Ответ #2 : Август 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);
    }
}
Записан
Dima1985
Гость
« Ответ #3 : Август 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 і ето давало ошибку измерения размера строки
« Последнее редактирование: Август 02, 2011, 22:34 от Dima1985 » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.125 секунд. Запросов: 22.