Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: События мыши, QGraphicsProxyWidget
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
Trisch
Вот поместил "сложный" виджет, в котором уже определены события мыши, через QGraphicsProxyWidget на сцену.
После чего события мыши перестали работать.

Пробовал так же переписать события через QGraphcsSceneMouseEvent, но все безуспешно((( В чем может быть проблема?
wiz29
без кода сложно ответить.
Trisch
А точнее дела обстоят так:
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
не совсем корректный код, тк виджет добавляется на компоновщик MainWindow и добавляется через прокси на сцену, думаю что это не верно
Trisch
Цитата(wiz29 @ 4.6.2012, 12:37) *
не совсем корректный код, тк виджет добавляется на компоновщик MainWindow и добавляется через прокси на сцену, думаю что это не верно


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

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


И так же теперь не работает QSizeGrip(((
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.