关于#qt#的问题:请问qt里用了TableWidget

关于#qt#的问题:请问qt里用了TableWidget,怎么在表里按类别查询

https://blog.csdn.net/NMarshal/article/details/127559269

你可以看看这个

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/269343
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:qt设置tableWidget表格内容不可编辑
  • 除此之外, 这篇博客: QT TableWidget中添加下拉框、复选框等操作中的 五、获取TableWidget中设置的复选框状态 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    //获取TableWidget中的复选框状态
    Qt::CheckState MainWindow::getCheckBoxCurrState_InTableWidget(QTableWidget *tableWidget, int x, int y)
    {
        QWidget *widget = tableWidget->cellWidget(x,y);
        QHBoxLayout *layout = qobject_cast<QHBoxLayout *>(widget->layout());
        QCheckBox *checkBox = qobject_cast<QCheckBox *>(layout->itemAt(0)->widget());
        return checkBox->checkState();
    }
    
    
  • 您还可以看一下 夏曹俊老师的C++QT5跨平台界面编程原理和实战大全课程中的 QTableWidget样式qss设定小节, 巩固相关知识点
  • 以下回答来自chatgpt:

    问题提到的是在使用Qt中的TableWidget时,想要实现按照特定类别查询表中的数据。根据参考资料中的信息,我可以通过以下步骤来实现这个功能:

    1. 首先,根据需要设置表格的行数和列数,设置列标题名称和行标题名称。
        int rowCount = 5; // 设置表格的行数
        int columnCount = 3; // 设置表格的列数
        ui->tableWidget->setRowCount(rowCount);
        ui->tableWidget->setColumnCount(columnCount);
    
        QStringList columnLabels; // 设置列标题名称
        columnLabels << "类别" << "名称" << "数值";
        ui->tableWidget->setHorizontalHeaderLabels(columnLabels);
    
        QStringList rowLabels; // 设置行标题名称
        rowLabels << "1" << "2" << "3" << "4" << "5";
        ui->tableWidget->setVerticalHeaderLabels(rowLabels);
    
    1. 然后,根据数据的类别,使用setItem()方法设置表中单元格的数据。
        QString category = "类别1"; // 要查询的类别
        QString name = "数据1";
        QString value = "100";
    
        for (int row = 0; row < rowCount; row++) {
            QTableWidgetItem *categoryItem = new QTableWidgetItem(category);
            ui->tableWidget->setItem(row, 0, categoryItem);
    
            QTableWidgetItem *nameItem = new QTableWidgetItem(name);
            ui->tableWidget->setItem(row, 1, nameItem);
    
            QTableWidgetItem *valueItem = new QTableWidgetItem(value);
            ui->tableWidget->setItem(row, 2, valueItem);
        }
    
    1. 接下来,根据特定类别查询表中的数据,可以使用item()方法获取指定行列的单元格对象,再通过text()方法获取数据。
        QString searchCategory = "类别1"; // 要查询的类别
        QString searchData;
    
        for (int row = 0; row < rowCount; row++) {
            QTableWidgetItem *categoryItem = ui->tableWidget->item(row, 0);
            if (categoryItem->text() == searchCategory) {
                QTableWidgetItem *nameItem = ui->tableWidget->item(row, 1);
                QTableWidgetItem *valueItem = ui->tableWidget->item(row, 2);
    
                searchData += "名称:" + nameItem->text() + ",数值:" + valueItem->text() + "\n";
            }
        }
    
        // 输出查询结果
        qDebug() << searchData;
    

    以上就是实现按照特定类别查询TableWidget中的数据的方法。请注意替换相关的变量名和具体数据,以适应你的实际场景。如果还有其他问题或需要进一步帮助,请告诉我。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^