Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Close button pressed signal in the QDockWidget
Forum Updated to NodeBB v4.3 + New Features

Close button pressed signal in the QDockWidget

Scheduled Pinned Locked Moved General and Desktop
17 Posts 3 Posters 14.4k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    Ruzik
    wrote on last edited by
    #7

    Thank you for your help!
    It is worked!

    1 Reply Last reply
    0
    • C Offline
      C Offline
      cincirin
      wrote on last edited by
      #8

      You are welcome.
      btw. nice virtual keyboard :-)

      1 Reply Last reply
      0
      • R Offline
        R Offline
        Ruzik
        wrote on last edited by
        #9

        If this is an allusion to agglomerate interface, it will be configured :-)

        1 Reply Last reply
        0
        • R Offline
          R Offline
          Ruzik
          wrote on last edited by
          #10

          I have one problem:
          If user want to moved QDockWidget from QMainWindow to separate window: at first, widget become invisible and then redrawn as separate window
          But how will I know when it is redrawn, and when the user closes it, if I get the same signals?

          1 Reply Last reply
          0
          • R Offline
            R Offline
            Ruzik
            wrote on last edited by
            #11

            My current code:
            RMathDockWidget.h
            @#ifndef RMATHDOCKWIDGET
            #define RMATHDOCKWIDGET

            #include "QDockWidget"

            class RMathDockWidget : public QDockWidget
            {
            Q_OBJECT
            public:
            RMathDockWidget(QWidget *parent = 0, Qt::WFlags flags=0);
            ~RMathDockWidget();
            private:
            bool localVisible;

            QWidget * parentWidget;
            public slots:
            void setVisible(bool);
            protected slots:
            void checkedToVisible(bool);
            };
            #endif@
            RMathDockWidget.cpp
            @#include "RMathDockWidget.h"
            #include "QDebug"
            #include "QAction"
            #include "Geter/Geter.h"

            RMathDockWidget::RMathDockWidget(QWidget *parent, Qt::WFlags flags) : QDockWidget(parent,flags)
            {
            localVisible = true;
            if(!parent)
            {
            qDebug() << "[Rizek message]Empty parent of RMathDockWidget!";
            }
            else
            parentWidget = parent;

            this->setMinimumWidth(120);
            connect(parent, SIGNAL(activityChanged(bool)), this ,SLOT(setVisible(bool)));
            connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(checkedToVisible(bool)));
            this->setVisible(false);
            }
            RMathDockWidget::~RMathDockWidget()
            {

            }
            void RMathDockWidget::setVisible(bool b)
            {
            //qDebug() << b << "!" << localVisible;
            if (b && localVisible)
            QDockWidget::setVisible(true);
            else
            QDockWidget::setVisible(false);
            }
            void RMathDockWidget::checkedToVisible(bool is)
            {
            qDebug() << is;
            Geter g; //object for getting parent Window class
            bool isParentWidgetVisible;
            if(g.getRizekMath()->getTabWidget()->currentWidget() == parentWidget) //is current tab of tabWidget is active
            isParentWidgetVisible = true;
            else
            isParentWidgetVisible = false;
            if (isParentWidgetVisible)
            localVisible = is;
            }@

            1 Reply Last reply
            0
            • R Offline
              R Offline
              Ruzik
              wrote on last edited by
              #12

              Exactly, are there no any ways to get signal from QDockWidget/Close Button when user click to this button?

              1 Reply Last reply
              0
              • R Offline
                R Offline
                Ruzik
                wrote on last edited by
                #13

                Maybe, somehow we can determine when the widget becomes invisible due to the repainting, or when the user wanted it

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  cincirin
                  wrote on last edited by
                  #14

                  Why you do not use "QAction::toggled":http://doc.qt.nokia.com/latest/qaction.html#toggled signal ?
                  @
                  QAction dockWidgetAction = yourDockWidget->toggleViewAction();
                  QObject::connect(dockWidgetAction, SIGNAL(toogled(bool)), yourClassPointer, SLOT(dockWidgetToogled(bool))
                  @

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    Ruzik
                    wrote on last edited by
                    #15

                    Because, signal void QDockWidget::visibilityChanged ( bool visible ) simular it, and i use this signal
                    If i write it
                    @connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(checkedToVisible(bool)));@
                    instead of
                    @connect(dockWidgetAction, SIGNAL(toogled(bool)), yourClassPointer, SLOT(dockWidgetToogled(bool))@
                    There are no to change or i dont right?

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      cincirin
                      wrote on last edited by
                      #16

                      QDockWidget::visibilityChanged is fired

                      bq. as well as when it is docked in a tabbed dock area and its tab becomes selected or unselected.

                      I answered to
                      [quote author="Ruzik" date="1320432125"]Exactly, are there no any ways to get signal from QDockWidget/Close Button when user click to this button?[/quote]

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        Ruzik
                        wrote on last edited by
                        #17

                        It was my mistake - override setVisible()
                        Once again thank you for your help!

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved