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();
}
我需要制作一个 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();
}