我有一个带有行选择的 QTableWidget,我正在尝试处理 3 个信号:
- 已单击单元格
- 单元格双击
- customContextMenuRequested
代码中的事情似乎很好:我想到了连接语法,类型参数是正确的并且匹配等;更具体地说,我“知道”代码是正确的,因为我有以下情况:
- 如果我将 3 个信号连接到它们各自的插槽,则只有单击和上下文菜单起作用。
- 如果我每次编译代码并运行程序时只连接一个信号,则该信号运行良好(对于其中的 3 个)。
- 如果我连接单击信号和上下文菜单,并为双击注释连接宏,它们运行良好。双击和上下文菜单相同。
但是,如果我连接单击和双击,则我的自定义插槽不会处理双击。
澄清一下,每个信号都有一个不同的插槽,正如我上面所说的,如果我只连接其中一个并在代码中注释另外两个,它们就会很好地工作。
所以我的问题是:cellClicked 和 cellDoubleClick 同时工作是否有任何错误?我是否必须设置一些标志、属性或属于 QTableWidget 的任何内容?
我的想法用完了,谢谢你的帮助!
而且,也许代码应该有所帮助:
表和槽声明:
QTableWidget * table;
public slots:
void tableChange(int row, int column);
void tableChangeDbl(int row, int column);
void PopupMenuTableShow(const QPoint &);
连接:
connect(table, SIGNAL(cellDoubleClicked(int, int)), this, SLOT(tableChangeDbl(int, int)));
connect(table, SIGNAL(cellClicked(int, int)), this, SLOT(tableChange(int, int)));
connect(table, SIGNAL(customContextMenuRequested(const QPoint &)), this, SLOT(PopupMenuTableShow(const QPoint &)));