列表控件的操作,刪除,添加、顯示進入的目錄文件
1,界面設計
2,頭文件
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QListWidgetItem>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void on_addCity_clicked();
void on_deleteCity_clicked();
void on_deleteAll_clicked();
void on_showDirBtn_clicked();
void on_listWidget_itemClicked(QListWidgetItem *item);
void on_listWidget_itemDoubleClicked(QListWidgetItem *item);
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
3,源文件
#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());
}
博文索引 持續更新中。。。