Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kim от Июль 22, 2011, 21:36



Название: К какой Area пристыкован DockWidget
Отправлено: kim от Июль 22, 2011, 21:36
Доброго времени суток.

Есть QMainWindow на нем, например слева DockWidget.
Как програмно определить что DockWidget находится именно слева т.е. получить его текущую Qt::DockWidgetArea ? 


Название: Re: К какой Area пристыкован DockWidget
Отправлено: TaIRou от Июль 22, 2011, 21:51
Qt::DockWidgetArea QMainWindow::dockWidgetArea ( QDockWidget * dockwidget ) const ?


Название: Re: К какой Area пристыкован DockWidget
Отправлено: kim от Июль 22, 2011, 22:03
Да, спасибо, оно.

Код
C++ (Qt)
     if(dockwidget)
     {
        QMainWindow* dw_win = qobject_cast<QMainWindow*>(dockwidget->parent());
        if(dw_win) qDebug() <<  dw_win->dockWidgetArea(dockwidget);
     }
 


Название: Re: К какой Area пристыкован DockWidget
Отправлено: TaIRou от Июль 22, 2011, 22:06
Да, спасибо, оно.

Код
C++ (Qt)
     if(dockwidget)
     {
        QMainWindow* dw_win = qobject_cast<QMainWindow*>(dockwidget->parent());
        if(dw_win) qDebug() <<  dw_win->dockWidgetArea(dockwidget);
     }
 

Я, честно говоря, не в курсе, а у dockwidget'ов бывают в родителях не QMainWindow, мож и проверять не стоит...


Название: Re: К какой Area пристыкован DockWidget
Отправлено: alexman от Июль 23, 2011, 10:44
Да, спасибо, оно.

Код
C++ (Qt)
     if(dockwidget)
     {
        QMainWindow* dw_win = qobject_cast<QMainWindow*>(dockwidget->parent());
        if(dw_win) qDebug() <<  dw_win->dockWidgetArea(dockwidget);
     }
 

Я, честно говоря, не в курсе, а у dockwidget'ов бывают в родителях не QMainWindow, мож и проверять не стоит...

Очевидно, что в родителях может быть любой наследник от QWidget.
Код:
QDockWidget ( const QString & title, QWidget * parent = 0, Qt::WindowFlags flags = 0 )
QDockWidget ( QWidget * parent = 0, Qt::WindowFlags flags = 0 )