#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
ui->treeWidget->setColumnCount(4);
//设置宽度
ui->treeWidget->setColumnWidth(0,150);
QStringList headers;
headers.append("Filename");
headers.append("Last Modified");
headers.append("Type");
headers.append("Size");
ui->treeWidget->setHeaderLabels(headers);
QIcon icon_folder(":/folder.png");
QIcon icon_file(":/file.png");
this->AddItem("Qt5开发实例.txt","2016-01-15","text file",8512,icon_file);
this->AddItem("MFC开发实例.txt","2010-04-27","text file",4526,icon_file);
this->AddItem("Java开发实例.txt","2011-12-7","text file",1526,icon_file);
this->AddItem("C#开发实例.txt","2009-08-5","text file",7895,icon_file);
QTreeWidgetItem* item=AddItem("video","2018-03-25","folder",0,icon_folder);
AddItem("Qt管理系统开发视频.mp4","2018-03-25","mp4 file",4512,icon_file,item);
//右键弹出菜单-右键菜单支持
ui->treeWidget->setContextMenuPolicy(Qt::CustomContextMenu);
connect(ui->treeWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(OnWidgetContextMeun(QPoint)));
connect(ui->actionAdd,SIGNAL(triggered(bool)),this,SLOT(OnMenuAdd()));
connect(ui->actionRemove,SIGNAL(triggered(bool)),this,SLOT(OnMenuRemove()));
}
int Widget::OnWidgetContextMeun(const QPoint &pt){
//当前选中项
QTreeWidgetItem *selected=ui->treeWidget->itemAt(pt);
//qDebug()<<row;
QMenu menu;
menu.addAction(ui->actionAdd);
if(selected){
menu.addAction(ui->actionRemove);
}
//显示菜单
menu.exec(ui->treeWidget->mapToGlobal(pt));
return 0;
}
int Widget::OnMenuAdd(){
QString msg=ui->treeWidget->currentItem()->text(0); //获取当前行的数据
//qDebug()<<msg;
QMessageBox::information(this,tr("提示"),"当前选中的信息为:"+msg,QMessageBox::Ok);
return 0;
}
int Widget::OnMenuRemove(){
QString msg=ui->treeWidget->currentItem()->text(0); //获取当前行的数据
//qDebug()<<msg;
QMessageBox::information(this,tr("提示"),"当前选中的信息为:"+msg,QMessageBox::Ok);
return 0;
}
QTreeWidgetItem* Widget::AddItem(const QString &filename
, const QString &last_modified
, const QString &type, int size
, QIcon icon
, QTreeWidgetItem *parent){
QTreeWidgetItem* item=new QTreeWidgetItem();
item->setText(0,filename);
item->setIcon(0,icon);
item->setText(1,last_modified);
item->setText(2,type);
item->setText(3,QString::number(size));
if(parent)
parent->addChild(item);
else
ui->treeWidget->addTopLevelItem(item);
return item;
}
Widget::~Widget()
{
delete ui;
}