在做属性表的时候,需要父窗口捕获光标位置,并将信息传给子窗口做后续处理。这里遇到了瓶颈,幸运的是最后解决了。方法肯定不止这一种,今天写下来只是希望给大家做个参考。
我的操作对象是TreeWidget控件,但是TableWidget等其他widget控件也可以通过这种思路进行实现。
首先,在含有treewidget的父窗口头文件中声明子窗口类,方便后期对其使用:
#include "menu_attribute.h"
在父窗口类的.h文件中,有以下信号和槽以及其他成员:
signals:
void trans(QTreeWidgetItem*);
private slots:
void on_treeWidget_customContextMenuRequested(const QPoint &pos);
void on_treeWidget_itemSelectionChanged();
void on_attri_menu();
private:
Ui::xml *ui;
QMenu *m_pmenu;
QAction *attri_menu;
menu_attribute *menu_attri;
下面是在父窗口的.cpp文件中的代码实现。在QMenu类型的右键菜单中添加自定义的QAction,可