QT下 TableWidget 实现右键菜单栏,以及TableWidget整体美化工作。
2014-07-01 18:27
1301 查看
转载请注明出处: http://blog.csdn.net/elfprincexu
QT TableWidget 是一个很常用的widget, 可以实现类似excel表格的效果。现在讲解一下如何实现右键菜单项选择。先附图如下
附上tablewidge常用修饰代码: header 字体颜色,伸缩框样式,整行选取等
QT TableWidget 是一个很常用的widget, 可以实现类似excel表格的效果。现在讲解一下如何实现右键菜单项选择。先附图如下
代码当中, cpp 文件当中: _tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect (_tableWidget, SIGNAL(customContextMenuRequested(QPoint)), SLOT(customMenuRequested(QPoint))) // right click connection void 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 info menu->addAction(action); menu->popup(_tableWidget->viewport()->mapToGlobal(pos)) ; //show the menu at right click pos connect (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 action QProcess 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);
相关文章推荐
- Qt:QListWidget的item上实现右键菜单
- Qt tableview 使用ComboBox作为delegate时,实现单个cell中的comboBox的item动态变化以及独特性
- Qt:QListWidget的item上实现右键菜单(空白的地方)
- Qt学习笔记 TableWidget使用说明和增删改操作的实现
- Qt实现系统托盘以及托盘的右键菜单
- Qt实现右键菜单的五种方法!(以QListWidget为例)
- 初学Qt——菜单栏QAction+ QstackedWidget堆栈窗体实现切换分页
- Qt:QListWidget的item上实现右键菜单
- Qt学习笔记 TableWidget使用说明和增删改操作的实现
- 用Qt实现录音以及放音
- 工程实践QT部分之二(准备工作续以及程序编写)
- QT实现右键快捷菜单
- Qt中Ui名字空间以及setupUi函数的原理和实现
- Qt 将进度条嵌入进table widget 控件
- QT QTableWidget中实现整行选中和禁止编辑单元格
- Android中实现Launcher功能之二 ----- 添加窗口小部件以及AppWidget的创建详解
- QT +openCV 实现摄像头采集以及拍照功能
- PyQt 右键菜单的实现(Qt.CustomContextMenu方式)
- QT 获得tableWidget中QComboBox的内容
- Adobe AIR右键菜单和系统托盘(Tray)功能以及实现方法