一、这次项目需要用到,可以在tablewidget中添加item,并且可以通过鼠标的右键选项进行一些打开、删除等操作。

1、在构造函数中定制右键菜单选项

ui.tableWidget_2->setSelectionBehavior(QAbstractItemView::SelectRows); //设置选择行为,以行为单位
ui.tableWidget_2->setSelectionMode(QAbstractItemView::SingleSelection); //设置选择模式,选择单行
openAction = new QAction("打开文件",this);
deleteAction = new QAction("删除文件", this);
closeAction = new QAction("退出菜单",this);
openAction->setShortcut(QKeySequence::Open);//设置打开快捷键
deleteAction->setShortcut(QKeySequence::Delete);
closeAction->setShortcut(QKeySequence::Quit);
ui.tableWidget_2->setContextMenuPolicy(Qt::CustomContextMenu);//设置上下文显示菜单的方式,Qt::CustomContextMenu是唯一与右键菜单相关的参数。
pMenu = new QMenu(ui.tableWidget_2);
pMenu->addAction(openAction);
pMenu->addAction(deleteAction);
pMenu->addAction(closeAction); connect(openAction, SIGNAL(triggered(void)), this, SLOT(openActionSlot(void)));
connect(deleteAction, SIGNAL(triggered(void)), this, SLOT(deleteActionSlot(void)));
connect(closeAction, SIGNAL(triggered(void)), this, SLOT(closeActionSlot(void)));
/*This signal is emitted when the widget's contextMenuPolicy is Qt::CustomContextMenu, and the user has requested a context menu on the widget*/
connect(ui.tableWidget_2, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(customContextMenuRequestedSlot(QPoint)));  //customContextMenuRequested(QPoint)信号是鼠标右击的时候产生的(注意,contextMenuPolicy必须是Qt::CustomContextMenu, 并且用户已经请求了一个上下文菜单 /*如下是一些槽函数的定义*/
void MyFtp::customContextMenuRequestedSlot(QPoint point)
{
pMenu->exec(QCursor::pos()); //运行并且显示右键菜单栏
}
void MyFtp::openActionSlot(void)
{
int row = ui.tableWidget_2->currentRow();
if (row!=-)
chosedFilePath = ui.tableWidget_2->item(row,)->text();
QProcess process;
//process.startDetached(QString("explorer.exe /select,"+chosedFilePath));//注意,在切换盘符的时候将无法获取正确结果
#ifdef WIN32
chosedFilePath.replace("/", "\\"); //***这句windows下必要***
#endif
process.startDetached("explorer /select," + chosedFilePath);  //打开指定目录,并选定指定文件
}

2、为tablewidget添加项目

ui.tableWidget_2->setItem(j*fileNameList.size() + i,,new QTableWidgetItem(QString::number(chosedCarNum[j])));

在添加项目前如果需要清空之前添加的项目则加如下代码:

int rowCount = ui.tableWidget_2->rowCount();
for (int i = rowCount - ; i >= ; i--)
  ui.tableWidget_2->removeRow(i);

最新文章

  1. Lind.DDD.UoW~方法回调完成原子化操作
  2. python基础知识8——模块1——自定义模块和第三方开源模块
  3. Monkeyrunner小脚本关于camera的使用
  4. 2016全国研究生数学建模A题多无人机协同任务规划——基于分布式协同多旅行商MTSP遗传算法
  5. Java笔记1-Java相关概念和如何实现跨平台
  6. 让div中的table居中
  7. c#之习题
  8. xmodem, ymodem & zmodem
  9. fiddler 记录一些以前不熟悉的东西
  10. JS源码(条件的判定,循环,数组,函数,对象)整理摘录
  11. Android之触屏事件
  12. Keil µVision4 中出现中文乱码的解决办法
  13. ImportError: No module named matlab
  14. BZOJ 3240: [Noi2013]矩阵游戏
  15. HTML5简单入门系列(六)
  16. mongodb 学习笔记05 --用户管理
  17. 【exp/imp】将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中
  18. iOS 多人共享开发证书
  19. g第十四周,十五周作业
  20. Java学习笔记之——集合

热门文章

  1. 64 计算机图形学入门(1)——OpenGL环境配置与图形流水线(图像管线)
  2. 数据科学工作者(Data Scientist) 的日常工作内容包括什么
  3. vbs 之 解决打开Excel文件格式与扩展名指定格式不一致的问题
  4. 广度优先搜索(Breadth First Search)
  5. 并发基础篇(六):线程Thread类的start()方法和run()方法【转载】
  6. ulimit - 获取和改变用户的限制设定
  7. 12_通过 CR3 切换_读取指定进程数据
  8. ubuntu查看时间同步服务器的匹配源
  9. mysql的下载
  10. struts2注解方式的验证