QT17 --ListWidget
用到的头文件包括#include <QDebug>#include <QDir>#include <QListWidget>#include <QListWidgetItem>#include <QString>#include <QPushButton>#include <QHBoxLayout>#include
·
- 手写一个界面
- 新建项
- 删除项
- 删除所有项
- 获取当前路径内所有文件名,
- 用到的头文件包括
#include <QDebug>
#include <QDir>
#include <QListWidget>
#include <QListWidgetItem>
#include <QString>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLineEdit>
#include <QMessageBox>
#include <QStringList>
- .h文件代码
private:
Ui::Widget *ui;
QListWidget *listWidget;
QPushButton *addButton;
QPushButton * deleteButton;
QHBoxLayout *h1;
QVBoxLayout *v1;
QLineEdit *lineEdit;
QPushButton *deleteAllButton;
QPushButton *getFileButton;
void setUi();
private slots:
void addItemSlot();
void deleteItemSlot();
void deleteAllSlot();
void getFileSlot();
- .cpp文件代码
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
setUi();
//connect function
QObject::connect(lineEdit,SIGNAL(returnPressed()),this,SLOT(addItemSlot()));
QObject::connect(deleteButton,SIGNAL(clicked()),this,SLOT(deleteItemSlot()));
QObject::connect(deleteAllButton,SIGNAL(clicked()),this,SLOT(deleteAllSlot()));
QObject::connect(getFileButton,SIGNAL(clicked()),this,SLOT(getFileSlot()));
}
void Widget::setUi()//设置界面
{
listWidget =new QListWidget;
addButton =new QPushButton;
addButton->setText("add");
deleteButton=new QPushButton;
deleteButton->setText("delete");
h1 =new QHBoxLayout;
v1 =new QVBoxLayout;
lineEdit =new QLineEdit;
h1->addWidget(lineEdit);
h1->addWidget(addButton);
h1->addWidget(deleteButton);
deleteAllButton=new QPushButton;
deleteAllButton->setText("delete all items");
getFileButton=new QPushButton;
getFileButton->setText("get file context");
v1->addWidget(listWidget);
v1->addLayout(h1);
v1->addWidget(deleteAllButton);
v1->addWidget(getFileButton);
this->setLayout(v1);
}
void Widget::getFileSlot()//获得文件夹内的文件名
{
qDebug()<<"get file name";
QDir dir=QDir::current();
QStringList fileNames=dir.entryList();
listWidget->clear();
for(int i=0;i<fileNames.size();i++)
{
QListWidgetItem *item=new QListWidgetItem();
item->setText(fileNames.at(i));
listWidget->addItem(item);
}
}
void Widget::deleteAllSlot()//删除所有列表内容
{
while(listWidget->count())
{
QListWidgetItem *item=listWidget->takeItem(0);
delete item;
}
}
void Widget::addItemSlot()//添加内容
{
QString name=lineEdit->text();
QListWidgetItem *item=new QListWidgetItem;
item->setText(name);
listWidget->addItem(item);
lineEdit->clear();
}
void Widget::deleteItemSlot()//删除某一个列表内内容
{
QListWidgetItem * item=listWidget->takeItem(listWidget->currentRow());
delete item;
}
Widget::~Widget()
{
delete listWidget;
delete addButton;
delete deleteButton;
delete deleteAllButton;
delete getFileButton;
delete h1;
delete v1;
delete lineEdit;
delete ui;
}
- 需要用到的特殊函数
listWidget->addItem(QListWidgetItem* item)添加listWidget子项目;item=listWidget->takeItem(listWidget->currentRow())获取当前选中项目的指针listWidget->count()获得当前listWidget内的文件数目;QDir dir=QDir::current()QStirngList fileNames=dir.entryList()获得当前路径内所有文件名的List列表;QString name=fileNames.at(int index)返回list中指定位置元素的内容,为QString 类型;
更多推荐
所有评论(0)