admin 管理员组

文章数量: 1184232

基本思路:

这里要考虑的问题有两个,一个是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

本文标签: 系统 编程 秘籍