crossplatform.ru

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

> [РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение, подстраивается под заголовок
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 14:47
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Сталкнулся с неожидаемым поведением функции QTableView::resizeColumnsToContents(). Ширина столбца подгоняется под ширину содержимого заголовка, в случае если первая строка данног столбца пустая:
Прикрепленное изображение

Если в первой строке данного столбца что-то есть, то подгоняется под него:
Прикрепленное изображение


Я ожидал, что будет подгонятся под самое большое содержимое в столбце. Кто-нибудь может прокоментировать и/или подсказать как добится ожидаемого поведения?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2009, 15:58
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kwisp @ 16.1.2009, 18:41) *
To distribute the available space according to the space requirement of each column or row,
Буквально: "Чтобы распространять доступное пространство в соответствии с пространством требующимся каждой колонке или строке"

Цитата(kwisp @ 16.1.2009, 18:41) *
у тебя совершенно случайно не ограничен размер нигде может просто не помещается содержимое????
спциально - нет. Вот все что я делаю с представлением:
ui_hourlyreport.h
view = new QTableView(HourlyReport);
view->setObjectName(QString::fromUtf8("view"));

hourlyreport.cpp
view->resizeColumnsToContents();


Цитата(kwisp @ 16.1.2009, 18:41) *
а setStretchLastSection(bool) работает у тебя?
я его неиспользую т.к. кол-во столбцов велико и они не влазят в окно, а это свой ство нужно для обратного случая, чтобы последний столбец заполнял все доступное пространство в представлении
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.1.2009, 16:03
Сообщение #3


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


извини за то что повторяюсь. считаю, что в данном контексте слово "требующимся" не означает что "по размеру содержимого".
может и ошибаюсь но предположений больше нет.
думаю стоит ковырять в сторону рекомендуемых размеров для элементов столбцов и строк.
ну конечно есть как всегда вариант через одно место с помощью QFontMetrics узнать размер строки и с помощью него менять ширину, но его я не предлагаю.:)

сейчас накатаю примерчик и посомотрю наглядно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 16.1.2009, 17:38
Сообщение #4


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


Цитата(kwisp @ 16.1.2009, 16:03) *
сейчас накатаю примерчик и посомотрю наглядно.


у меня так получилось если сделать
table.resizeColumnsToContents();
до заполнения то косячит

если после заполнения то все ок.
норма
#include <QApplication>
#include <QTableWidget>
#include <QTableWidgetItem>

int main(int a,char** b)
{
    QApplication app(a,b);
    QTableWidget table(100,100,0);
    int i=2;
    for(int i=0;i<100;++i){
        for(int y=0;y<100;++y){
            table.setItem(i,y,new QTableWidgetItem(QString::number(i*i)));
        }
    }
    table.resizeColumnsToContents();    
    table.show();
    return app.exec();
}


обрезается
#include <QApplication>
#include <QTableWidget>
#include <QTableWidgetItem>

int main(int a,char** b)
{
    QApplication app(a,b);
    QTableWidget table(100,100,0);
    int i=2;
    table.resizeColumnsToContents();
            for(int i=0;i<100;++i){
        for(int y=0;y<100;++y){
            table.setItem(i,y,new QTableWidgetItem(QString::number(i*i)));
        }
    }
        
    table.show();
    return app.exec();
}



с таблицами не работал раньше.
оно то и понятно потому что table.resizeColumnsToContents(); это установка сделать операцию используя имеющиеся данные о размерах строк. а не установка свойства.

Сообщение отредактировал kwisp - 16.1.2009, 17:40
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Litkevich Yuriy   [РЕШЕНО] QTableView::resizeColumnsToContents, неожидаемое поведение   16.1.2009, 14:47
- - AD   Мне кажется, придется самому переопределить эту фу...   16.1.2009, 14:52
- - kwisp   прям как то не верится. у тебя вроде бы на втором ...   16.1.2009, 14:56
|- - kwisp   Цитата(kwisp @ 16.1.2009, 14:56) прям как...   16.1.2009, 15:02
|- - kwisp   void QTableView::resizeColumnsToContents () [slo...   16.1.2009, 15:10
- - Litkevich Yuriy   Цитата(kwisp @ 16.1.2009, 17:56) не мог б...   16.1.2009, 15:01
- - Litkevich Yuriy   пожалуй такое замечание, в примере где в ячейке пу...   16.1.2009, 15:02
- - Litkevich Yuriy   Цитата(kwisp @ 16.1.2009, 18:10) меня сму...   16.1.2009, 15:17
|- - kwisp   Цитата(Litkevich Yuriy @ 16.1.2009, 15:17...   16.1.2009, 15:41
- - Litkevich Yuriy   Цитата(kwisp @ 16.1.2009, 18:41) To distr...   16.1.2009, 15:58
|- - kwisp   извини за то что повторяюсь. считаю, что в данном ...   16.1.2009, 16:03
|- - kwisp   Цитата(kwisp @ 16.1.2009, 16:03) сейчас н...   16.1.2009, 17:38
- - Litkevich Yuriy   У меня тоже после заполнения: HourlyReport:...   16.1.2009, 17:55
|- - kwisp   Цитата(Litkevich Yuriy @ 16.1.2009, 17:55...   16.1.2009, 17:59
- - Litkevich Yuriy   Цитата(kwisp @ 16.1.2009, 20:59) ну а есл...   16.1.2009, 18:08
|- - kwisp   Цитата(Litkevich Yuriy @ 16.1.2009, 18:08...   16.1.2009, 18:13
- - SABROG   Где-то я такое уже видел. Попробуй такие варианты:...   16.1.2009, 22:17
|- - kwisp   Цитата(SABROG @ 16.1.2009, 22:17) emit vi...   16.1.2009, 23:06
- - Litkevich Yuriy   Цитата(kwisp @ 16.1.2009, 21:13) мое пред...   17.1.2009, 6:02
|- - kwisp   Цитата(Litkevich Yuriy @ 17.1.2009, 6:02)...   17.1.2009, 10:35
- - Litkevich Yuriy   кое чего накопал, чтобы избавится от многоточия, м...   17.1.2009, 6:58
- - Litkevich Yuriy   вот только для конечного пользователя это не вариа...   17.1.2009, 11:07
|- - kwisp   засада. я так понял что у тебя в другом потоке зап...   17.1.2009, 11:15
- - Litkevich Yuriy   Цитата(kwisp @ 17.1.2009, 14:15) я так по...   17.1.2009, 11:20
|- - kwisp   в какой последовательности заполняется таблица??? ...   17.1.2009, 13:10
- - Litkevich Yuriy   Цитата(kwisp @ 17.1.2009, 16:10) в какой ...   17.1.2009, 13:21
|- - kwisp   Цитата(Litkevich Yuriy @ 17.1.2009, 13:20...   17.1.2009, 13:23
- - Litkevich Yuriy   Цитата(kwisp @ 17.1.2009, 16:23) ну ты зн...   17.1.2009, 13:33
|- - kwisp   Цитата(Litkevich Yuriy @ 17.1.2009, 13:33...   17.1.2009, 13:40
- - Litkevich Yuriy   Цитата(kwisp @ 17.1.2009, 16:40) ячейки п...   17.1.2009, 13:50
|- - kwisp   Цитата(Litkevich Yuriy @ 17.1.2009, 13:50...   17.1.2009, 14:15
- - Litkevich Yuriy   Ответ на вопрос найден: Все работает, но размер по...   8.2.2009, 17:01


Тема закрытаНачать новую тему
Теги
Нет тегов для показа


15 чел. читают эту тему (гостей: 15, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.2.2025, 18:38