基本思路:
这里要考虑的问题有两个,一个是QTreeWidgetItem的右键功能,一个是确认点击右键之后实现菜单功能。关于QTreeWidgetItem下右键的功能的实现,使用QTreeWidgetItem信号,然后判断是否按下的为鼠标右键。关于菜单功能的实现,则是创建一个QMenu对象,然后将要实现的菜单功能包装到QAction对应的槽函数中。
下面以一个简单的Qt Widgets Application工程为例说明具体实现:
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QTreeWidgetItem>
#include <QAction>
#include <QMenu>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QAction * test; //自定义的QAction
private slots:
void testSlot(); //与QAction想关联的槽函数
void itemPressedSlot(QTreeWidgetItem *, int); //用来判断是否是鼠标右键按下的槽函数
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QActi

发布评论