检测QlistWidget中某个行是否单击项目 [英] Detecting if an item is clicked at at some row in a QlistWidget

查看:1091
本文介绍了检测QlistWidget中某个行是否单击项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经得到这个简单的任务,



我有这个列表,我instert项每当确定点击,void Form :: ok()应该在列表中添加新的列表项。



现在我不能做的是检测一个项目是否被点击在某一行,然后根据这是我的代码..

  #includeform1.h
#includeform.h
#includeui_form.h
#includeui_form1.h
#include< QScrollArea>
#include< QScrollBar>

//#include< QgeoPositioninfo.h>

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

}
Form ::〜Form()
{
delete ui;
}

void Form :: ok()
{
QIcon mypix(:/karim/test.png);

QListWidgetItem * newItem = new QListWidgetItem;
newItem-> setText(pixmix);
newItem-> setIcon(mypix);

int row = ui-> listWidget-> row(ui-> listWidget-> currentItem());
this-> ui-> listWidget-> insertItem(row,newItem);

// if(row x的项目被点击)
{
//做某事
}
}



请在yout回答中具体说明

解决方案

如下所示:

  connect(ui-> listWidget,SIGNAL (itemClicked(QListWidgetItem *)),this,SLOT(itemClickedSlot(QListWidgetItem *))); 

void Form :: itemClickedSlot(QListWidgetItem * itemClicked)
{
//用点击的项目做某事
}


I Have been given this simple task ,

I have this list where i instert items whenever ok is clicked,void Form::ok() handle that event is supposed to add new list items to the list.

Now what am not able to do is to detect the if an item is clicked at at some row then do something according to that, this is my code..

#include "form1.h"
#include "form.h"
#include "ui_form.h"
#include "ui_form1.h"
#include<QScrollArea>
#include<QScrollBar>

//#include <QgeoPositioninfo.h>

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

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

void Form::ok()
{
    QIcon  mypix  (":/karim/test.png");

    QListWidgetItem* newItem = new QListWidgetItem;
    newItem->setText("pixmix");
    newItem->setIcon(mypix);

    int row = ui->listWidget->row(ui->listWidget->currentItem());
    this->ui->listWidget->insertItem(row, newItem);

    //if(item at row x is clicked)
     {
     //do something
     }
}

Please be specific in yout answer i will appreciate that

解决方案

Something as below :

connect(ui->listWidget, SIGNAL(itemClicked(QListWidgetItem *)), this, SLOT(itemClickedSlot(QListWidgetItem *)));

void Form::itemClickedSlot (QListWidgetItem * itemClicked)
{
//Do something with clicked item
}

这篇关于检测QlistWidget中某个行是否单击项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆