crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> События мыши, QGraphicsProxyWidget
Trisch
  опции профиля:
сообщение 4.6.2012, 11:00
Сообщение #1


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

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

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




Репутация:   0  


Вот поместил "сложный" виджет, в котором уже определены события мыши, через QGraphicsProxyWidget на сцену.
После чего события мыши перестали работать.

Пробовал так же переписать события через QGraphcsSceneMouseEvent, но все безуспешно((( В чем может быть проблема?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 4.6.2012, 11:15
Сообщение #2


Старейший участник
****

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

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




Репутация:   12  


без кода сложно ответить.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 4.6.2012, 11:24
Сообщение #3


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

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

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




Репутация:   0  


А точнее дела обстоят так:
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{

    if (event->button() & Qt::LeftButton)
        // здесь не работает

    if (pSizeL->underMouse() == true)
        // здесь не работает


какой то глюк не все написал(((

в общем

void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    // Здесь работает
    if (event->button() & Qt::LeftButton)
        // Здесь не работает

    if (pSizeL->underMouse() == true)
        // и Здесь не работает
}


А вот примерный код конструктора

MainWindow(QWidget *parent) : QGraphicsView(parent)
{
    pScene = new QGraphicsScene();
    setScene(pScene);
    pProxyWidget = new QGraphicsProxyWidget;
    pGridLayoutDialog = new QGridLayout(this);
    pFrame = new QFrame;
    ...
    ...
    pFrame->setLayout(pGridLayoutFrame);
    pProxyWidget = pScene->addWidget(pFrame);
    pProxyWidget->setGeometry(QRectF(0, 0, 300, 500));
    pGridLayoutDialog->addWidget(pFrame);
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
wiz29
  опции профиля:
сообщение 4.6.2012, 12:37
Сообщение #4


Старейший участник
****

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

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




Репутация:   12  


не совсем корректный код, тк виджет добавляется на компоновщик MainWindow и добавляется через прокси на сцену, думаю что это не верно
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Trisch
  опции профиля:
сообщение 4.6.2012, 14:41
Сообщение #5


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

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

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




Репутация:   0  


Цитата(wiz29 @ 4.6.2012, 12:37) *
не совсем корректный код, тк виджет добавляется на компоновщик MainWindow и добавляется через прокси на сцену, думаю что это не верно


Закомментировал pGridLayoutDialog->addWidget(pFrame);
События мыши начали работать. Ну кроме

...
if (pSizeL->underMouse() == true)
...


И так же теперь не работает QSizeGrip(((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 2.12.2024, 7:00