Qt工作笔记-树图结构的2种方式,实现右键菜单
生活随笔
收集整理的這篇文章主要介紹了
Qt工作笔记-树图结构的2种方式,实现右键菜单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
程序運行截圖如下:
一種是使用setContextMenuPolicy然后使用信號和槽關聯。
一種是重寫void contextMenuEvent(QContextMenuEvent *event);
程序結構如下圖:
代碼如下圖:
mytreeview.h
widget.h
#ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();private:Ui::Widget *ui;private slots:void onContextMenu(const QPoint &pt); };#endif // WIDGET_Hmain.cpp
#include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }mytreeview.cpp
#include "mytreeview.h" #include <QContextMenuEvent> #include <QMenu>MyTreeView::MyTreeView(QWidget *parent):QTreeView(parent) {}void MyTreeView::contextMenuEvent(QContextMenuEvent *event) {QMenu menu;menu.addAction("第一個Action");menu.addAction("第二個Action");menu.exec(event->globalPos());}widget.cpp
#include "widget.h" #include "ui_widget.h"#include <QMenu>Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);connect(ui->treeView,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(onContextMenu(QPoint))); }Widget::~Widget() {delete ui; }void Widget::onContextMenu(const QPoint &pt) {QMenu menu;menu.addAction("第一個Action");menu.addAction("第二個Action");menu.exec(ui->treeView->mapToGlobal(pt)); }總結
以上是生活随笔為你收集整理的Qt工作笔记-树图结构的2种方式,实现右键菜单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++与QML信号交互(非Q_PROPE
- 下一篇: Qt工作笔记-绘制静态折线图