crossplatform.ru

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

6 страниц V  « < 3 4 5 6 >  
Ответить в данную темуНачать новую тему
> QComboBox, Как задать размер выпадающего списка
SABROG
  опции профиля:
сообщение 10.1.2009, 23:32
Сообщение #41


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

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

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




Репутация:   34  


Добавил setFocus стало все отрисовываться

void uoColorChooser::popupShow()
{
    if (m_colorList.isEmpty())
        return;
    getContainer();
    QSize sz = m_Container->recalcSize();
    m_Container->doChangeCurColor(m_colorCurPos);

    QPoint below = mapToGlobal(frameRect().bottomLeft());
    QRect contRect = QRect(below, QPoint(below.x()+sz.width(), below.y()+sz.height()));
    m_Container->setGeometry(contRect);
    m_Container->move(below);
    m_Container->raise();
    m_Container->show();
    m_Container->update();
    m_Container->setFocus();
}


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

В общем пока все свелось к следующим изменениям:

- раскомментировать Qt::Popup
- закомментировать Qt::Tooltio
- добавить в конец метода uoColorCContainer::mousePressEvent - QWidget::mousePressEvent(event);
- в методе uoColorChooser::mousePressEvent заменить popupHide() на popupShow()
- добавить setFocus

Сообщение отредактировал SABROG - 10.1.2009, 23:43
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 11.1.2009, 0:19
Сообщение #42


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

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




Репутация:   6  


Цитата(SABROG @ 10.1.2009, 23:32) *
Добавил setFocus стало все отрисовываться

фокус на сонтайнере как бы и не нужен в принципе по задумке.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 11.1.2009, 0:29
Сообщение #43


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

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

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




Репутация:   34  


Цитата(trdm @ 11.1.2009, 0:19) *
Цитата(SABROG @ 10.1.2009, 23:32) *
Добавил setFocus стало все отрисовываться

фокус на сонтайнере как бы и не нужен в принципе по задумке.


Ну QComboBox фокус же на вьюху ставит. Правда до сих пор не могу понять как этот фокус влияет на отрисовку попапа. Или почему фокус сам не переходит на открытое окно. В общем проблема скрылась где-то в зарослях логики работы Qt с виджетами и эвентами.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 11.1.2009, 21:27
Сообщение #44


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

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




Репутация:   6  


Цитата(SABROG @ 10.1.2009, 23:32) *
Добавил setFocus стало все отрисовываться....

Вобщем сделал как ты написал и добавил от себя.
После установки фокуса все стало перерисовываться.
ПС. Вобщем дорожка проторена, можно идти :)
Сенк!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 11.1.2009, 21:40
Сообщение #45


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

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

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




Репутация:   34  


Цитата(trdm @ 11.1.2009, 21:27) *
Цитата(SABROG @ 10.1.2009, 23:32) *
Добавил setFocus стало все отрисовываться....

Вобщем сделал как ты написал и добавил от себя.
После установки фокуса все стало перерисовываться.
ПС. Вобщем дорожка проторена, можно идти :)
Сенк!


Имхо там заросли те еще :) Хотелось бы докапаться до сути, почему:
  1. фокус не переходит на окно, если окно показывается в эвенте (если по сигнату то все ок)
  2. окно не отрисовывается без фокуса


И понять каждую строчку кода, чтобы можно было написать какой-нибудь гайд по созданию своих виджетов. Я думаю там еще будут проблемы с keyPressEvent'ом. А так код сейчас выглядит так как будто его выдрали частями из исходников QComboBox :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 11.1.2009, 21:53
Сообщение #46


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

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




Репутация:   6  


Цитата(SABROG @ 11.1.2009, 21:40) *
Я думаю там еще будут проблемы с keyPressEvent'ом.

это я доточил.
Цитата(SABROG @ 11.1.2009, 21:40) *
А так код сейчас выглядит так как будто его выдрали частями из исходников QComboBox :)

не, сам писал. подглядывал конечно...
у комбобокса там прокладка для возможности установки вьювов, а у меня без...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 11.1.2009, 23:04
Сообщение #47


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

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

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




Репутация:   34  


А ты победил залипание кнопок при первом клике ? Т.е. когда у QComboBox жмешь на стрелку, то она залипает до момента пока контейнер не скроется. А у меня получается что при первом вызове не залипает, а потом нормально.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 11.1.2009, 23:30
Сообщение #48


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

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




Репутация:   6  


Цитата(SABROG @ 11.1.2009, 23:04) *
А ты победил залипание кнопок при первом клике ? Т.е. когда у QComboBox жмешь на стрелку, то она залипает до момента пока контейнер не скроется. А у меня получается что при первом вызове не залипает, а потом нормально.

неа. Оставил пока для как несущественную фичу. Думю доточить несложно. Сейчас другие приоритеты.
Собственно я просто хотел "познакомиться" с имплементациями такого рода: выпадающий список и свои кнопки "на контроле".
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 12.1.2009, 15:22
Сообщение #49


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

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

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




Репутация:   34  


Создал тестовое приложение и в mousePressEvent динамически создаю QWidget и там же его отображаю. Проблем с отрисовкой вроде нет никаких, даже оригинальный обработчик вызывать не приходится. Где же косяк зарылся ?

Кстати забавно. Если на форме находится кнопка и на нее нажимаешь, то эвент не вызывается, а если на неё нажать правой кнопкой мышки, то вызывается :)

Кстати выбор клавиатурой при закрытом контейнере работает криво. Если зажать клавишу вверх/вниз, то через некоторое время цвет зацикливается.

Сообщение отредактировал SABROG - 12.1.2009, 16:19
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 9.2.2009, 2:08
Сообщение #50


Дмитрий Трошин
****

Группа: Участник
Сообщений: 575
Регистрация: 12.1.2008
Пользователь №: 68

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




Репутация:   6  


Цитата(SABROG @ 12.1.2009, 15:22) *
Кстати выбор клавиатурой при закрытом контейнере работает криво. Если зажать клавишу вверх/вниз, то через некоторое время цвет зацикливается.

это зафиксено.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

6 страниц V  « < 3 4 5 6 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 1.12.2024, 5:45