crossplatform.ru

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

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> QComboBox, предоставление возможности пользователю изменять размер выпадающего списка, т.е. во время выполнения
SABROG
  опции профиля:
сообщение 10.12.2008, 17:26
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Многие пользователи IE замечали, что у выпадающего списка combobox'a (option) можно менять размеры, однако у стандартных элементов Windows (API) такого уголка нет. Он также не используется в стандартном QComboBox'e. Вот способ, как его добавить:

    QSizeGrip *szg = new QSizeGrip(ui.comboBox);
    ui.comboBox->view()->setCornerWidget(szg);





Несмотря на то, что решение кажется простым и легким, чтобы его найти я сегодня потратил целый день. Скажу лишь, что есть второй способ это сделать без setCornerWidget, но он полон подводных камней, типа расположения уголка в левой верхней части вместо нижней правой, это решается через layout()->addWidget() с нужными параметрами выравнивания, однако возникает другой косяк с тем, что QBoxLayout (используемый по умолчанию в QListView) делит видимую область выпадающего списка на две равные половины, а это мне победить не удалось ни установкой максимальных размеров ни приминением sizePolicy.

Статья в вики

Сообщение отредактировал Litkevich Yuriy - 11.2.2009, 19:50
Причина редактирования: подкорректировал название
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.12.2008, 18:21
Сообщение #2


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

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

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




Репутация:   94  


SABROG, ты не мог бы добавить это в нашу Вики, точнее в ЧаВо
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.12.2008, 18:54
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(Litkevich Yuriy @ 10.12.2008, 18:21) *
SABROG, ты не мог бы добавить это в нашу Вики, точнее в ЧаВо


Добавил. Правда как картинку впихнуть так и не понял, внешние ссылки не работают видимо (html тэги не пробывал).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.12.2008, 19:11
Сообщение #4


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

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

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




Репутация:   94  


Цитата(SABROG @ 10.12.2008, 21:54) *
как картинку впихнуть так и не понял
картинку надо сначала загрузить (ссылка "Загрузить файл" в боковом меню), а после загрузки сослаться на него.

---
добавил картинку
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 15.12.2008, 12:12
Сообщение #5


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Про растягивание: если ни один из скроллеров не виден, то и уголок не появится.
Чтобы он гарантированно появлялся, нужно сделать один из скроллеров всегда видимым, например вертикальный:
ui.comboBox->view()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);


Сообщение отредактировал Tonal - 15.12.2008, 12:13
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.12.2008, 12:37
Сообщение #6


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

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

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




Репутация:   94  


а тут пожалуй и нормально, если содержимое не умещается, то линейка прокрутки появляется автоматом, тогда и уголок будет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Tonal
  опции профиля:
сообщение 16.12.2008, 13:17
Сообщение #7


Активный участник
***

Группа: Участник
Сообщений: 452
Регистрация: 6.12.2007
Из: Новосибирск
Пользователь №: 34

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




Репутация:   17  


Вертикальная - да, а горизонтальная там всегда задизаблина.
Так что есть есть длинная строка то уголок не помешает. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 16.12.2008, 13:40
Сообщение #8


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

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




Репутация:   34  


Цитата(Tonal @ 16.12.2008, 13:17) *
Вертикальная - да, а горизонтальная там всегда задизаблина.
Так что есть есть длинная строка то уголок не помешает. :)

Добавил в вики. Кстати вот как у Microsoft SQL Server Management Studio уголок реализован в property view. Тут уже setCorner'ом не обойдешься :)

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.12.2008, 16:06
Сообщение #9


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

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

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




Репутация:   94  


Цитата(SABROG @ 16.12.2008, 16:40) *
вот как у Microsoft SQL Server Management Studio уголок реализован
как-то неудачно, не с той стороны для правши.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 31.1.2009, 12:14
Сообщение #10


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

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

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




Репутация:   94  


Один из читателей вики утверждает, что этот приём не работает в Линуксе, может кто-нибудь проверить?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 26.2.2021, 4:51