#include #include "mainwindow.h" class SizedTableWidget : public QTableWidget { public: SizedTableWidget (int rows, int columns, QWidget *parent) : QTableWidget (rows, columns, parent) {} QSize sizeHint() const { return QSize ( verticalHeader()->width() + horizontalHeader()->length() + frameWidth() * 2, horizontalHeader()->height() + verticalHeader()->length() + frameWidth() * 2 ); } }; MainWindow::MainWindow() : textEdit(new QTextEdit) { setCentralWidget(textEdit); QDockWidget *dock = new QDockWidget(tr("Table"), this); dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); table = new SizedTableWidget (1 /* rows */, 2 /* cols */, dock); table->setHorizontalHeaderLabels(QStringList() << "name" << "value"); QTableWidgetItem *nameItem = new QTableWidgetItem; nameItem->setText("foo"); table->setItem(0, 0, nameItem); QTableWidgetItem *valueItem = new QTableWidgetItem; valueItem->setText("10"); table->setItem(0, 1, valueItem); table->horizontalHeader()->setStretchLastSection(true); table->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding); dock->setWidget(table); addDockWidget(Qt::RightDockWidgetArea, dock); }