7列表控件的操作

列表控件的操作,刪除,添加、顯示進入的目錄文件
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());
}
博文索引  持續更新中。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章