crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> QTableView + HorizontalSCroll, горизональный скролл таблицы
Levsha_c
  опции профиля:
сообщение 14.11.2013, 21:27
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 14.11.2013
Пользователь №: 3975

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




Репутация:   0  


Здравствуйте. Делаю программу управления реестром. Возникла проблема с QTableView. Строка не помещается в ширину столбца, как сделать горизонтальную прокрутку содержимого столбца?
Код:

QTableView tw;
QStringList sl;
QStringListModel lm;

QSettings settings("HKEY_CURRENT_USER",QSettings::NativeFormat);
sl=settings.allKeys();//получаю все ключи с путями данного раздела реестра;
lm.setStringList(sl);//передаю данные в модель
tw.setModel(&lm);//присоединяю модель к TableView.


скроллы не появляются.

Скролла нет


И здесь скролла тоже нет (



Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 15.11.2013, 14:55
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

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




Репутация:   4  


Levsha_c, после
tw.setModel(&lm);

напиши
tw.resizeColumnToContents(0);

Есть еще другой вариант
tw.resizeRowsToContents();



Сообщение отредактировал Steklova Olga - 15.11.2013, 15:32
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.11.2013, 23:40
Сообщение #3


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

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

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




Репутация:   94  


попробуй присоединять представление до загрузки модели данными.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Levsha_c
  опции профиля:
сообщение 18.11.2013, 7:33
Сообщение #4


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 14.11.2013
Пользователь №: 3975

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 16.11.2013, 0:40) *
попробуй присоединять представление до загрузки модели данными.


Спасибо за ответ, предложенное Вами решение не решает проблему, скроллы не появляются.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Levsha_c
  опции профиля:
сообщение 18.11.2013, 8:55
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 14.11.2013
Пользователь №: 3975

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




Репутация:   0  


Цитата(Steklova Olga @ 15.11.2013, 15:55) *
Levsha_c, после
tw.setModel(&lm);

напиши
tw.resizeColumnToContents(0);

Есть еще другой вариант
tw.resizeRowsToContents();


Здравствуйте. Предложенный Вами вариант, делает необходимый столбец шире, но даже с учётом этого полосы прокрутки для столбца не появляются, даже с учётом что поставлен флаг setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 18.11.2013, 11:28
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

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




Репутация:   4  


Цитата(Levsha_c @ 18.11.2013, 8:55) *
полосы прокрутки для столбца не появляются
зато в первом предложенном мною варианте автоматически появляется горизонтальная полоса прокрутки для таблицы, а во втором варианте полностью виден весь текст ячеек столбца

Есть еще вариант создать делегат для ячеек этого столбца.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 19.11.2013, 12:59
Сообщение #7


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

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

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




Репутация:   94  


Цитата(Levsha_c @ 18.11.2013, 10:55) *
с учётом что поставлен флаг setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
вот это странно вообще.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Steklova Olga
  опции профиля:
сообщение 20.11.2013, 11:23
Сообщение #8


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

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




Репутация:   4  


Цитата(Levsha_c @ 18.11.2013, 8:55) *
полосы прокрутки для столбца не появляются, даже с учётом что поставлен флаг setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);

- setHorizontalScrollBarPolicy относится к отображению полосы прокрутки для таблицы, а не для столбцов
- если установить Qt::ScrollBarAlwaysOn, то хоть полоса прокрутки для таблицы и будет отображаться всегда,
но доступной она будет не всегда, а только тогда, когда юзер сделает размер окна таким, что скроется часть столбца таблицы
- так что можно оставить значение по умолчанию
tw.setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
- если у тебя не указано tw.setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); то на первой картинке должен быть горизонтальный скролл
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 11.12.2023, 10:02