QT下 TableWidget 实现右键菜单栏,以及TableWidget整体美化工作。
来源:互联网 发布:优美句子知乎 编辑:程序博客网 时间:2024/05/01 02:30
转载请注明出处: http://blog.csdn.net/elfprincexu
QT TableWidget 是一个很常用的widget, 可以实现类似excel表格的效果。现在讲解一下如何实现右键菜单项选择。先附图如下
代码当中, cpp 文件当中:_tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);connect (_tableWidget, SIGNAL(customContextMenuRequested(QPoint)), SLOT(customMenuRequested(QPoint))) // right click connectionvoid MyClass::customMenuRequested(QPoint pos) {QTableWidgetItem* selecteditem = _tableWidget->itemAt(pos) ;//get right click pos item/** do sth relative with current selected item* QString finalStr = selecteditem->text();*/QMenu* menu = new QMenu(this);QAction* action = new QAction(tr(&Open Directory), this);action->setData(finalStr );// set data, for later in slot, we can get necessary infomenu->addAction(action);menu->popup(_tableWidget->viewport()->mapToGlobal(pos)) ; //show the menu at right click posconnect (action, SIGNAL(triggered()), this, SLOT(openDirectory));}void myClass::openDirectory(){QAction* action = qobject_cast<QAction*> (sender());if (action == 0) return;QString str = action->data();//get previous data saved by us //do sth relative with the actionQProcess proc;proc.setWorkingDirectory(str);// set current path as str we got proc.start("gnone-Terminal");// open a new terminal bool result = proc.waitForStarted(1000);result& = proc.waitForFinished(1000);if (result) qDebug()<<"success";else qDebug()<<"failure";}头文件中添加一个slot: void customMenuRequested(QPoint pos);void openDirectory();
附上tablewidge常用修饰代码: header 字体颜色,伸缩框样式,整行选取等
// set header for tablewidget _tableWidget->setColumnCount(2); QStringList headers; headers<<"Creation Time"<<"GenDebug Name" ; _tableWidget->setHorizontalHeaderLabels(headers); // only selecting entire rows _tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); // only single row selection _tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); // forbidden edit _tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); // customcontext menu _tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); // set header font, bold QFont font = _tableWidget->horizontalHeader()->font(); font.setBold(true); _tableWidget->horizontalHeader()->setFont(font); _tableWidget->horizontalHeader()->setStretchLastSection(true); _tableWidget->horizontalHeader()->resizeSection(0,150); // set selection mode _tableWidget->setStyleSheet("selection-background-color: darkblue"); // selection background color :blue // set header height _tableWidget->horizontalHeader()->setFixedHeight(25); // set header bg color, horizontalscroll vericalscrollbar style _tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:skyblue;}"); _tableWidget->horizontalScrollBar()->setStyleSheet("QScrollBar{background:transparent; height:10px;}" "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}" "QScrollBar::handle:hover{background:gray;}" "QScrollBar::sub-line{background:transparent;}" "QScrollBar::add-line{background:transparent;}"); _tableWidget->verticalScrollBar()->setStyleSheet("QScrollBar{background:transparent; width: 10px;}" "QScrollBar::handle{background:lightgray; border:2px solid transparent; border-radius:5px;}" "QScrollBar::handle:hover{background:gray;}" "QScrollBar::sub-line{background:transparent;}" "QScrollBar::add-line{background:transparent;}"); // no highlight to header _tableWidget->horizontalHeader()->setHighlightSections(false);
0 0
- QT下 TableWidget 实现右键菜单栏,以及TableWidget整体美化工作。
- Qt::tablewidget
- QT tablewidget 自适应宽度
- QT TableWidget应用笔记
- QT TableWidget插入数据
- Qt TableWidget控件使用
- QT tableWidget基本用法
- Qt:表格 tableWidget
- qt tablewidget的显示问题
- Qt之TableWidget、信号、槽
- combobox tableview tablewidget 单选按钮 美化
- QT 获得tableWidget中QComboBox的内容
- Qt 读写Excel,并显示到tablewidget
- Qt 读写Excel,并显示到tablewidget
- Qt中tableWidget的样式总结
- Qt 读写Excel,并显示到tablewidget
- Qt 读写文件,并显示到tablewidget
- QT 获得tableWidget中QComboBox的内容
- 单台物理机搭建Sequoiadb集群
- python实现 从一个数组中找到完全含有另一个数组元素的最短子数组
- 并行输入\输出控制器之我见(PIO)
- 基于中值滤波或双边滤波方式的图像去雾效果的研讨。
- "网络适配器本地连接没有有效ip地址配置"错误的解决办法
- QT下 TableWidget 实现右键菜单栏,以及TableWidget整体美化工作。
- [码海拾贝 之JS] JS 之数组排序
- 医疗行业大数据应用体现在10个角度
- eclipse jetty 插件
- Centos 编译安装ACE
- UEFI的学习
- 传智播客.韩顺平.轻松搞定网页设计(html.css.javascript)
- Objective-C的语法简要说明(c++对照)
- JAVA学习之静态内部类(二)