- All (478)
- jom (0)
- Qt Linguist (7)
- Qt Eclipse Integration (9)
- Qt Designer (7)
- Qt Creator (4)
- Qt build system: qmake (31)
- Qt build system: configure (3)
- Qt Assistant (5)
- Printing (4)
- Porting from Qt 3 to Qt 4 (1)
- Plugins (7)
- Qt Visual Studio AddIn (2)
- Qt/MFC Migration (2)
- QtScript (3)
- MDI (2)
- XML (1)
- Widgets (22)
- WebKit (5)
- Tools and Containers (2)
- Threads (2)
- Text Handling (10)
- SQL (6)
- QtTest (1)
- QtService (1)
- Platform: Windows (49)
- Platform: Unix (16)
- Platform: Mac OS X (18)
- Image Formats (2)
- I/O (2)
- Graphicsview (8)
- Font handling (9)
- Event System (18)
- Drag and Drop (4)
- Dialogs (6)
- Desktop integration (3)
- ActiveQt (3)
- Itemviews (60)
- Layout (4)
- Qt Quick (10)
- Qt SDK (1)
- Licensing (2)
- Platform: Embedded Linux (38)
- Painting (32)
- OpenGL (4)
- Object Model (6)
- Network (5)
- Multimedia (3)
- Miscellanous (23)
- Main Window (19)
- Look and Feel (23)
- Development (0)
- Getting Involved (0)
- Routines (0)
How can I resize a QDockWidget programatically?
When you add the dock widget to the QMainWindow [doc.qt.nokia.com], it becomes part of the main window’s layout and any size you give is ignored. You can however reimplement the QWidget::sizeHint() [doc.qt.nokia.com] for the widget contained in the QDockWidget [doc.qt.nokia.com] to give it a preferred size or you can call QWidget::setFixedSize() [doc.qt.nokia.com] on it to give it a size that can’t be changed.
Note that since QDockWidget acts as a wrapper for its child widget, custom size hints, minimum and maximum sizes and size policies have to be implemented in the child widget. QDockWidget will respect them, adjusting its own constraints to include the frame and title. Size constraints should not be set on the QDockWidget itself, because they change depending on whether it is docked; a docked QDockWidget has no frame and a smaller title bar.
See the following example for a demonstration:
- #include <QtGui>
- {
- public:
- {
- setAutoFillBackground(true);
- setText("The label");
- setPalette(pal);
- }
- {
- }
- };
- int main(int argc, char **argv)
- {
- QMainWindow box;
- dock->setWidget(new Label(dock));
- box.show();
- return app.exec();
- }

1 comment
August 16, 2011
Lab Rat
It is not a good idea.QSize(400, 500) just the initial Size,but you cant coding to resize the QDockWidget.