Skip to content
  • 0 Votes
    7 Posts
    371 Views
    C

    @JonB that works. Don't know why I didn't try that, other than getting lost in all the overloads that involved signals/slots. The simplest one with just a QString argument does the trick.

    Thanks!

  • 0 Votes
    6 Posts
    719 Views
    gde23G

    Thanks for the ideas, I got it working like this now:

    bool myWidget::event(QEvent* e) { if(e->type() == QEvent::Leave) { QPoint view_pos(x(), y()); QPoint view_pos_global = mapToGlobal(view_pos); QPoint mouse_global = QCursor::pos(); if(mouse_global.x() < view_pos_global.x() || mouse_global.x() > view_pos_global.x() + width()) { closeMenu(); } else if(mouse_global.y() < view_pos_global.y() || mouse_global.y() > view_pos_global.y() + height()) { closeMenu(); } } return QWidget::event(e); }
  • 0 Votes
    3 Posts
    2k Views
    dante77D

    Thank you @SGaist ! I figured it was something along those lines but couldn't put my finger on it.

  • 0 Votes
    8 Posts
    4k Views
    S

    @JonB said in "Progress MessageBox":

    OK. Forget about modeless for a moment, if you don't want to deal with threads. Take a look at http://doc.qt.io/qt-5/qdialog.html#open, and start from there instead of the normal QDialog::exec(). I'm thinking that may be all you are looking for.

    I still don't know what it is you think you are going to "show the progress against", but that's another issue.....

    Thanks for the recommendation. I will look into open(), etc. I will probably end up threading the heavy tasks, but I'm trying to avoid all the tedious synchronization for now.

    As for 'progress against': I realized why that may not have made sense. Individual time-consuming tasks will not be able to report on their progress mid-stream (no way to gauge how long to complete), but there is a series of them. Basically a chain of image processes--filters, denoising, etc. and each can take from 5 seconds to almost a minute. Awkward to just sit there looking at the barberpole progress bar, so I thought of setting up a timer in the progress dialog in order to monitor a 'status variable' back at the ranch. As each filter stage completes, the status variable would be updated. When the variable changes from "filter 1" to "filter 2", appropriate text could be displayed in the progress dialog. Or so I hope. :-)

  • 0 Votes
    14 Posts
    7k Views
    J

    @SGaist According to comments in the bug report the posted code should work in qt 5.6.1, and I have been able to verify this is indeed the case. So I guess I should consider this question as 'answered' then. Thanx for the help

  • 0 Votes
    2 Posts
    2k Views
    J

    A small clarification. Popup window should work the same way as menu or combobox, so it should be closed when you click anywhere outside popup.

  • 0 Votes
    11 Posts
    6k Views
    A

    @p3c0 Thank You, your answers were really helpful, it's solved.