crossplatform.ru

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

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


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

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

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




Репутация:   94  


Цитата(SABROG @ 10.1.2009, 2:03) *
"воспроизведено" (reply) не ясно
ну типа повторение
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.1.2009, 0:52
Сообщение #32


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

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

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




Репутация:   34  


Цитата(Litkevich Yuriy @ 10.1.2009, 0:26) *
ну типа повторение


А в каком контексте ? Что повторяется и зачем :) ?
---
А кажись понял

Цитата
When the application opens a popup widget, all events are sent to the popup.


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

Сообщение отредактировал SABROG - 10.1.2009, 0:55
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.1.2009, 16:30
Сообщение #33


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

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

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




Репутация:   34  


Проверил рисование на popup'e, все отлично

В подтверждение тому демка (7Mb)
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 10.1.2009, 18:56
Сообщение #34


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

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

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




Репутация:   94  


SABROG, а чето за метёлка? Она к теме какое отношение имеет?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.1.2009, 19:10
Сообщение #35


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

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

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




Репутация:   34  


Это скрин из демки, там 24 телки рандомно выводятся в виде popup окна. Это я так проверял работу paintEvent'a попап окна. А телок выбрал, чтобы глаз радовали. Могу мужиков поставить. Предупредите заранее, когда в след. раз что-нибудь ваять надумаю. ;)

Надо будет на досуге с .mng пошаманить. Что-нить типа десктопного анимированного питомца или виртуалгёрл замутить.

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


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

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

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




Репутация:   6  


Какой парент у попупа? QDialog? А у меня унаследованный от QFrame виджет.
Попробуй в конструкторе проекта, который я подцепил выше установить у uoColorCContainer флаг Qt::Popup и увидишь о чем я говорил.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.1.2009, 20:42
Сообщение #37


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

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

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




Репутация:   34  


Цитата(trdm @ 10.1.2009, 19:58) *
Какой парент у попупа? QDialog? А у меня унаследованный от QFrame виджет.
Попробуй в конструкторе проекта, который я подцепил выше установить у uoColorCContainer флаг Qt::Popup и увидишь о чем я говорил.

У меня от чистого QWidget'a. Изменил на QFrame, ничего не изменилось.

Я тебя не правильно понял. Прозрачного окошка нет, оно просто не перерисовывается и не хайдится. Но все-таки эвенты работают, т.к. в комбике цвет меняется. Что-то ты замудрил хитрое с эвентами, там черт ногу сломит.

Сообщение отредактировал SABROG - 10.1.2009, 21:22
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 10.1.2009, 21:28
Сообщение #38


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

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

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




Репутация:   6  


да уж... наверное замутил....
я еще и не такое замутить способен :)
фиг кто разберется....

Сообщение отредактировал trdm - 10.1.2009, 21:29
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 10.1.2009, 22:05
Сообщение #39


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

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

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




Репутация:   34  


Попробуй пропиши вот это в main.cpp

QObject::connect(btnOK, SIGNAL(clicked()),colCh, SLOT(popupShow()));


И раскомментируй Qt::Popup. Затем сравни результаты, выбери из комбобокса попап, а потом с помощью кнопки OK. В первом случае зависнет, во второй отработает на все 100.

---
Пардон забыл еще кое-что.
Надо закомментировать это:

setWindowFlags(Qt::ToolTip);


Иначе popup окно не будет попапом и следовательно закрываться при потере фокуса.

Если в uoColorCContainer::mousePressEvent закомментировать все и оставить только это:

QWidget::mousePressEvent(event);


То окно будет закрываться при потере фокуса, но не будет выбираться элемент, а если раскомментировать, то цвета будут выбираться, но попап не будет закрываться при потере фокуса.

Зато если совместить вот так:

void uoColorCContainer::mousePressEvent(QMouseEvent *event)
{

    QPoint pt = event->pos();
    QList<uoColRect>::const_iterator  cIt = m_colRects.begin();
    uoColRect colrRct;
    int cur = 0;

    while(cIt != m_colRects.end()){
        colrRct = *cIt;
        if (colrRct.m_rect.contains(pt))
        {
            m_curentItem = cur;
            cur = -1;
            break;
        }
        cIt++;
        ++cur;
    }
    if (cur == -1){
        setCurentItem(m_curentItem);
        hide();
    }
    QWidget::mousePressEvent(event);
}


То окно и закрывается и элемент выбирается.
---
Похоже я опять что-то забыл...
Блин, если сначала нажать на кнопку, а потом использовать комбо, то все нормально. А если просто на кнопку комбика жать, то отрисовка не идет.
---
Мистика какая-то. Если сначала нажать на комбик, потом выбрать предполагаемый цвет, то этот так и не отрисовавшийся попап пропадает. Затем если снова нажимать на комбик то все работает. В общем эвенты - зло.

Сообщение отредактировал SABROG - 10.1.2009, 22:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
trdm
  опции профиля:
сообщение 10.1.2009, 22:48
Сообщение #40


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

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

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




Репутация:   6  


Стало быть проблема в МЕСТЕ вызова метода popupShow().
Я это замечал когда пытался проанализировать Qt-шный пример windowsFlag.
вот правленный проект. я тут кое-что подкрутил. Вобщем меня вроде как устраивает, но если есть шанс сделать нормально, то лучше сделать нормально...

Сообщение отредактировал trdm - 10.1.2009, 22:52
Прикрепленные файлы
Прикрепленный файл  uoWidget.zip ( 8,72 килобайт ) Кол-во скачиваний: 118
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 11.12.2024, 11:25