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

标签 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 显示在角标题单元格中。为什么会这样?我做错了什么以及如何解决这个问题?

最佳答案

ui->currentSetting1TableWidget->colorCount() 您有代码完成辅助输入错误。你想要 columnCount() .因为您为附加(colorCount() 必须高于 columnCount())标签指定了不正确的位置,所以它们被分配给坐标 (0,0) 或非常接近的坐标。

您也从 row = 1 开始迭代,但是行是从 0 开始索引的,这就是为什么第一行没有标签。跳过第一列并从 1 开始迭代它们是有意义的,因为有复选框。

关于c++ - 无法在 qtablewidget 单元格中设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39884663/

相关文章:

c++ - "In file included from error"带 vector

c++ - 使用 map 容器的字母频率

Qt - 如何使用 QDir::entryList() 同时过滤具有特定文件类型和目录的文件

c++ - 使 std::cout 在同一行中一个接一个地输出多个字符串

c++ - gdb 无法在 mac os x 中调试 "hello world"

c++ - 如何在 Qt 中为 QMainWindow 切换 'always on top' 而不会导致闪烁或闪烁?

python - QListView 中自定义 IndexWidget 的平滑延迟加载和卸载

c++ - 如何在 Mac OSX 中获取真实的日历微秒时间(自 1970 年以来的纪元)?

c++ - QTableView选择单个单元格

python - 在 Ubuntu 14.04 上构建 PyQt5 的问题