1

我有一个带有行选择的 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 &)));
4

0 回答 0