QTableview属性

时间:2014-09-14 06:27:36

标签: c++ qt qtableview resizable

我需要帮助自定义QTableView,我已经定义了一个QTableView作为此示例节目,我在互联网上找到了:

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);
  1. 如何单独定义每列的大小,即使用百分比:
    我会得到第一列10%的宽度第二个50%,第三个40%。

  2. 当我运行程序并双击QTableView中的一行时,我可以更改单击的单元格的值,尽管我已经定义了QTableView {{1}方法,我的意思是,当你点击重命名文件时,它突出显示文本,以便你可以修改,我该如何禁用它?

  3. 如何使列可调整大小,这意味着可以通过拖动列的边缘来调整大小。

1 个答案:

答案 0 :(得分:1)

首先:在setColumnWidth()之后使用setModel()方法。例如:

//...
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);

来自你的代码。