Jan. 5, 2020, 1:36 p.m.

Как изменить форматирование qtableview после добавления данных?

QTableView

Всем доброго времени суток и всех с прошедшими и наступающими праздниками!
Подскажите как реализовать вот такой момент. Есть qtableview, ы который добавляются данные следующим образом

    if(!altIdentList->isEmpty()){
        AltIdentModel* model = new AltIdentModel(altIdentList->count(), this);
        for (int i = 0; i < altIdentList->count(); i++) {
            if(altIdentList->at(i).getPartNumberObject() != nullptr)
                model->setAltIdent(i, 1, altIdentList->at(i).getPartNumberObject()->getPartNumberValue());
            if(altIdentList->at(i).getManufacturerCodeObject() != nullptr)
                model->setAltIdent(i, 2, altIdentList->at(i).getManufacturerCodeObject()->getManufacturerCodeValue());
        }
        ui->altIdentTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
        ui->altIdentTable->horizontalHeader()->setSelectionMode(QAbstractItemView::NoSelection);
        ui->altIdentTable->setSelectionMode(QAbstractItemView::NoSelection);
        ui->altIdentTable->setWordWrap(false);
        ui->altIdentTable->setModel(model);
    }

Но иногда ширины ячейки не хаватает для отображения содержимого и в конце появляется моноготочие. Так вот у меня вопрос, как изменить тип отображения с варианта "растягивание" на вариант "отображение по контексту"?

Заранее благодарен за помощь!

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.
7

После обновления данных вызывайте
для всех столюцов

ui->altIdentTable->resizeColumnsToContents();

или для одного

ui->altIdentTable->resizeColumnToContents(column);

Спасибо, я тоже думал об этом, но в этом случае получается, что таблица не растягивается на всю область и это некрасиво получается. Можно ли как-то проверить содержимое ячейки на предмет помещается ли оно в ячейку целиком и если нет, то применять не растягивание, а растягивание по контенту?

Используйте

ui->altIdentTable->horizontalHeader()->stretchLastSection();

Последний столбец растянется на всю доступную ширину.

Не получается. Точнее получается, но при этом, если есть длинее значения, то они не отображаются полностью. Может можно как-то проверить, если значение влазит в ширину ячейки применять одну настройку, если нет, то другую.

Решил задачку. Если кому-то будет интересно, пишите. Выложу свой вариант решения. Просто сейчас времени нет, а потом могу забыть )))

Сделайте маленькую статью в разделе Qt

Отличная идея. Правда я статью писать буду первый раз!

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Donate

Hello, Dear Users of EVILEG!!!

If the site helped you, then support the development of the site financially, please.

You can do it by following ways:

Thank you, Evgenii Legotckoi

A
March 29, 2020, 12:14 p.m.
Alexanderv66

C++ - Тест 003. Условия и циклы

  • Result:71points,
  • Rating points1
A
March 29, 2020, 12:05 p.m.
Alexanderv66

C ++ - Test 004. Pointers, Arrays and Loops

  • Result:80points,
  • Rating points4
DE
March 28, 2020, 3:13 p.m.
Denis Erokhin

C++ - Test 005. Structures and Classes

  • Result:100points,
  • Rating points10
Last comments
March 27, 2020, 2:40 p.m.
Evgenij Legotskoj

Добрый день. В конце пятой статьи скачать можете.
March 27, 2020, 2:28 p.m.
mkdir _

Здравствуйте, а можно, пожалуйста, ссылку на целые исходники, если есть?
March 27, 2020, 4:36 a.m.
Evgenij Legotskoj

Скорее всего также, как и для установки всех остальных переменых в CMake, через использование set
March 27, 2020, 2:47 a.m.
Andrej Jankovich

Ошибка с ярлыками в Windows исправлена в версиии 1.4.0.4
March 26, 2020, 1:37 p.m.
Andrej Jankovich

но появятся ярлыки, сейчас поправим
Now discuss on the forum
March 30, 2020, 4:16 a.m.
Evgenij Legotskoj

Попробуйте запустить через плейлист, а не через setMedia. Пример есть в этой статье
March 30, 2020, 3:25 a.m.
Evgenij Legotskoj

Добрый день. Почитайте документацию, в исходниках этой библиотеки есть исходнные классы логгеров. Вам наверняка достаточно только правильно вызвать пару функций, чтобы задать имя файла…
March 30, 2020, 3:17 a.m.
Evgenij Legotskoj

Нет, не нужно ничего умножать, если у вас включена поддержа High DPI в приложении а QML, то достаточно держать в памяти, что все значения задаются в DPI, и просто задаёте значения равные DPI сра…
March 27, 2020, 10 a.m.
Mihailll

Оказывается нужно сделать столбец уникальным ALTER TABLE public.drivers ADD UNIQUE (agregator1_id); Потом так работает INSERT INTO drivers( name_driver, surname, middle_name, agr…
s
March 27, 2020, 8:25 a.m.
shuric

Спасибо за ответы. Скорее всего оставлю на неопределенное время под macOS. Хоть будет полезно другим начинающим разработчикам.
EVILEG
About
Services
© EVILEG 2015-2019
Recommend hosting TIMEWEB