点击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

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

  

  

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

时间: 2025-01-17 09:58:32

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

JS实现点击参数面板按钮显示或隐藏数据

当报表中列出数据太多时,想通过显示按钮隐藏明细数据只显示统计数据.如下图示例,那么该如何实现呢?本文以FineReport为例,来讲述JS如何实现点击参数面板按钮显示或隐藏数据. 打开报表 在参数面板添加一个标签控件,控件名为lable,设置标签控件不可见,控件值为"显示". 在参数面板添加一个按钮控件,控件名为button,控件值为"只显示合计数据",并添加点击事件. 编辑点击事件,添加下面的JavaScript代码: /*获取隐藏的标签控件的值*/ var la

Android学习之解决ListView中item点击事件和item中Button点击事件冲突问题

在ListView中添加Button后,如果只是单纯的加入而不加限制的话,ListView的onClick点击事件没有响应,因为Button获取了item的焦点,想要两者都可点击,需要加上如下限制: 在ListView的适配器中的布局文件中添加: (1)在布局文件的根元素上中添加属性android:descendantFocusability="blocksDescendants" (2)在Button中添加属性android:focusable="false"和a

重写listview,横向滑动出现删除按钮,点击按钮删除item

首先看一下效果图: 接下来看具体操作: 准备一个删除按钮的布局,新建button.xml文件,代码如下所示: <?xml version="1.0" encoding="utf-8"?> <Button xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/btn" android:layout_width=&q

ListView点击或选中item改变背景

点击或选中ListView中的一项后,使item背景改变,失去焦点同样显示选中的背景,重新选中另外一项才刷新: 在Adapter中配置: public class MyAdapter extends BaseAdapter{ int mSelect = 0; //选中项 ...... public void changeSelected(int positon){ //刷新方法 if(positon != mSelect){ mSelect = positon; notifyDataSetCha

android自定义dialog中点击listview的item事件关闭dialog

import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.os.Bundle; import android.view.Display; import android.view.Gravity; import android.view.View;

点击ListView一个Item弹出窗体,窗体展示时添加动画效果切入

private class MyAppInfoItemClickListener implements OnItemClickListener{ @Override public void onItemClick(AdapterView<?> parent, View view, int position,long id) { // 在弹出之前先销毁已经弹出的窗体 destoryPopupWindow(); //保留当前的Item的位置坐标 currentIndex = position; /

【Android笔记】listview点击或选中item改变item样式或背景

1.自定义Adapter中配置: 1 public class MyAdapter extends BaseAdapter{ 2 3 int mSelect = 0; //选中项 4 5 ...... 6 7 public void changeSelected(int positon){ //刷新方法 8 if(positon != mSelect){ 9 mSelect = positon; 10 notifyDataSetChanged(); 11 } 12 } 13 14 15 16 p

php实现点击文字提交表单并传递数据至下一个页面

<?php $id="4";//等会要把这个数据传到第二个页面 ?> <?php echo "<li>"; echo "<form name=\"myquestion\" method=\"post\" action=\"question.php\">"; echo "<input name=\"questionID\&

Scrapy系列教程(2)------Item(结构化数据存储结构)

Items 爬取的主要目标就是从非结构性的数据源提取结构性数据,比如网页. Scrapy提供 Item 类来满足这种需求. Item 对象是种简单的容器.保存了爬取到得数据. 其提供了 类似于词典(dictionary-like) 的API以及用于声明可用字段的简单语法. 声明Item Item使用简单的class定义语法以及 Field 对象来声明. 比如: import scrapy class Product(scrapy.Item): name = scrapy.Field() pric