C++ QTableview属性
我需要有关自定义C++ QTableview属性,c++,qt,qtableview,resizable,C++,Qt,Qtableview,Resizable,我需要有关自定义QTableView的帮助,我已定义了QTableView,如本例所示,我在internet上找到: model = new QStandardItemModel(2,3,this); //2 Rows and 3 Columns model->setHorizontalHeaderItem(0, new QStandardItem(QString("ID"))); model->setHorizontalHeaderItem(1, new QStandardItem
QTableView
的帮助,我已定义了QTableView
,如本例所示,我在internet上找到:
model = new QStandardItemModel(2,3,this); //2 Rows and 3 Columns
model->setHorizontalHeaderItem(0, new QStandardItem(QString("ID")));
model->setHorizontalHeaderItem(1, new QStandardItem(QString("Name")));
model->setHorizontalHeaderItem(2, new QStandardItem(QString("Description")));
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableView->setModel(model);
我会得到第一列宽度的10%,第二列50%,第三列40%
QTableView
中的一行时,我可以更改所单击单元格的值,尽管我已经定义了一个QTableView
onDoubleclick方法,我的意思是,当你单击重命名一个文件时,它会突出显示文本以便你可以修改,我如何禁用它首先:在
setModel()
之后使用setColumnWidth()
方法。例如:
//...
ui->tableView->setModel(model);
double ii = ui->tableView->columnWidth(0);
ui->tableView->setColumnWidth(1,0.4*ii);
ui->tableView->setColumnWidth(2,0.5*ii);
第三:要做到这一点,请删除
ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
从您的代码中。strech工作正常,谢谢,但是ui->tableView->columnWidth(0);返回0@saeedhardan因为在setModel之前使用它,所以tableView没有任何内容,所以得到0。请看我的编辑,我写了解决方案。对于2,我刚刚取消了edittriggers中的双击,非常感谢