Qt5 中垂直可调整大小的 QTableView

Vertically Resizable QTableView in Qt5

我需要制作一个 QTableWidget 可通过鼠标垂直调整大小的小部件
实际上我需要用户能够拖动小部件的顶部边缘并垂直调整它的大小。

如何在 Qt5/QCreator 中执行此操作?

QSplitter class 就是您要找的。

它允许用户通过拖动它们之间的边界来控制已添加到其中的小部件的大小。您可以使用 insertWidget() or addWidget().

将小部件添加到 QSplitter

这是一个最小的例子:

#include <QtWidgets>


int main(int argc, char* argv[]){
    QApplication a(argc, argv);

    //create a vertically resizable splitter
    QSplitter sp(Qt::Vertical);
    QTableWidget tableWidget;
    tableWidget.setRowCount(10);
    tableWidget.setColumnCount(2);
    for(int i=0; i<10; i++){
        for(int j=0; j<2; j++){
            tableWidget.setItem(i, j, 
                                new QTableWidgetItem(QString("item(%0, %1)")
                                                     .arg(i+1).arg(j+1)));
        }
    }
    QTextEdit textEdit;
    //add resizable widgets to splitter
    sp.addWidget(&textEdit);
    sp.addWidget(&tableWidget);
    sp.show();

    return a.exec();
}