首页 > 其他 > 详细

点击ListWidget 的 item 匹配TableWidget相同数据 将表头标记为红色

时间:2018-05-15 23:59:35      阅读:383      评论:0      收藏:0      [点我收藏+]

一、用Qt Creator创建test工程

  ①  ui文件

    技术分享图片

  ② .h文件  

    

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
class QListWidgetItem;

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
public slots:
    void slotTest(QListWidgetItem *item);

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

  ③ cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QListWidgetItem>
#include <QTableWidgetItem>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->listWidget, SIGNAL(itemDoubleClicked(QListWidgetItem*)), this, SLOT(slotTest(QListWidgetItem*)));

    ui->tableWidget->setRowCount(4);
    ui->tableWidget->setColumnCount(4);
    ui->tableWidget->setItem(0,0, new QTableWidgetItem("a"));
    ui->tableWidget->setItem(1,0, new QTableWidgetItem("b"));
    ui->tableWidget->setItem(2,0, new QTableWidgetItem("c"));
    ui->tableWidget->setItem(3,0, new QTableWidgetItem("d"));
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::slotTest(QListWidgetItem *item)
{
    for(int row = 0; row < ui->tableWidget->rowCount();row++)
    {
        QTableWidgetItem *itemData = ui->tableWidget->item(row,0);
        if(item->text() == itemData->text())
        {
            QTableWidgetItem *header = ui->tableWidget->verticalHeaderItem(row);
            if(header == NULL)
            {
                qDebug() << "111111";
            }
            header->setTextColor(QColor(255,0,0));
        }
    }
}

  ④运行程序

  技术分享图片

  问题: 点击ListWidget的Item匹配右边TableWidget数据导致程序崩溃

  原因:ui->tableWidget->verticalHeaderItem(row)返回值为NULL

  解决办法:重新设置表头,如下图代码:

  技术分享图片

 

  

点击ListWidget 的 item 匹配TableWidget相同数据 将表头标记为红色

原文:https://www.cnblogs.com/jiangson/p/9043251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!