无法在qtablewidget单元格中设置文本

时间:2016-10-05 22:26:29

标签: c++ qt qt5

我想在QTableWidget中有一个只读文本,所以我决定在每个单元格中插入一个QLabel。不幸的是我得到了以下外观:

enter image description here

以下是我用于此的代码:

for (int row = 1; row < ui->currentSetting1TableWidget->rowCount(); row++)
    for (int col = 1; col < ui->currentSetting1TableWidget->colorCount(); col++) {
        QLabel *label = new QLabel(ui->currentSetting1TableWidget);
        label->setText("mytext");
        ui->currentSetting1TableWidget->setCellWidget(row, col, label);
    }

我看到两个问题:

  1. 当我运行代码时,我收到了一堆以下警告: QPaintDevice :: metrics:设备没有度量信息

  2. mytext 显示在角标题单元格中。为什么会这样?我做错了什么以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

ui->currentSetting1TableWidget->colorCount()你有代码完成辅助错字。你想要columnCount()。由于您为其他(colorCount()必须高于columnCount())标签指定了错误的展示位置,因此会将其分配给坐标(0,0)或非常接近的位置。

你也是从row = 1进行迭代,但是行从0开始索引,这就是你在第一行没有标签的原因。由于复选框,跳过第一列并从1迭代它们是有意义的。