#include "widget.h"
#include "ui_widget.h"
#include <QListWidgetItem>
#include <QStringList>
#include <QMessageBox>
#include <QDebug>
#include <QDir>
#include <QFileDialog>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
ui->listWidget->setViewMode(QListView::IconMode);
connect(ui->lineEdit,SIGNAL(returnPressed()),this,
SLOT(on_addCity_clicked()));
}
Widget::~Widget()
{
delete ui;
}
//添加條目
void Widget::on_addCity_clicked()
{
QString cityNmae=ui->lineEdit->text();
if(cityNmae.isEmpty())
{
return ;
}
QListWidgetItem *item=new QListWidgetItem;
item->setText(cityNmae);
ui->listWidget->addItem(item);
ui->lineEdit->clear();
}
//刪除所單擊的條目
void Widget::on_deleteCity_clicked()
{
QListWidgetItem *item=ui->listWidget->takeItem(ui->listWidget->currentRow());
delete item;
}
//刪除所有的項目
void Widget::on_deleteAll_clicked()
{
int counter=ui->listWidget->count();
for(int index=0;index<counter;index++)
{
QListWidgetItem *item=ui->listWidget->takeItem(index);
delete item;
}
}
//顯示進入的目錄
void Widget::on_showDirBtn_clicked()
{
ui->listWidget->clear();
QDir dir=QDir::currentPath();
QStringList fileName=dir.entryList();
if(fileName.size()==0)
{
QMessageBox::information(this,"Error Message",
"No file Selected");
return ;
}
for(int index=0;index<fileName.size();index++)
{
if(fileName.at(index)=="."||fileName.at(index)=="..")
{
continue;
}
QListWidgetItem *item=new QListWidgetItem;
item->setText(fileName.at(index));
ui->listWidget->addItem(item);
}
}
//顯示單擊的項目
void Widget::on_listWidget_itemClicked(QListWidgetItem *item)
{
QMessageBox::information(this,"information",
"singal clicked"+item->text());
}
//顯示雙擊的項目
void Widget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
{
QMessageBox::information(this,"information",
"double clicked"+item->text());
}
博文索引 持續(xù)更新中,。,。,。
?二:列表控件的其他操作
?(1)item中添加數(shù)據(jù)
? 添加:
? setData(Qt::UserRole,"123");
? 讀取:
? data(Qt::UserRole).toString();
?因為:Qt::UserRole的值為32,所以下面的代碼是等價的
? 添加:
? setData(32,"123");
? 讀?。?br>? data(32).toString();
?
?(2)item位置的移動
? 實現(xiàn)思路:首先得到當(dāng)前項的位置信息,,之后刪除當(dāng)前的項,再插入到合適的位置,。
?int index=ui->listWidget->currentRow(); //得到當(dāng)前的索引值
if(index==0) //往上移動已經(jīng)到了第一項,不進行任何操作
{
return;
}
QListWidgetItem *item=ui->listWidget->takeItem(index);; //刪除當(dāng)前的選中項
//將當(dāng)前的選中項插入到合適的位置
ui->listWidget->insertItem((index-1),item);
ui->listWidget->setCurrentRow((index-1)); //設(shè)置該項為當(dāng)前項