zoukankan      html  css  js  c++  java
  • 点击ListWidget 的 item 匹配TableWidget相同数据 将表头标记为红色

    一、用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

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

      

      

  • 相关阅读:
    ubuntu中mysql版本升级到5.7
    ng-深度学习-课程笔记-5: 深层神经网络(Week4)
    ng-深度学习-课程笔记-4: 浅层神经网络(Week3)
    《计算机程式设计》Week6 课堂笔记
    《计算机程式设计》Week5 课堂笔记
    关于解决coursera视频缓冲问题
    《计算机程式设计》Week4 课堂笔记
    《计算机程式设计》Week3 课堂笔记
    《计算机程式设计》Week2 课堂笔记
    使用 Matlab 运行 Windows 命令
  • 原文地址:https://www.cnblogs.com/jiangson/p/9043251.html
Copyright © 2011-2022 走看看