QTableWidget,cellClicked和cellDoubleClicked

时间:2013-05-08 13:16:10

标签: qt qtablewidget

我有一个带行选择的QTableWidget,我正在尝试处理3个信号:

  • cellClicked
  • cellDoubleClicked
  • customContextMenuRequested

代码中的东西看起来很好:我记得连接语法,类型参数是正确的和匹配的等等;更具体地说,我“知道”代码是正确的,因为我有以下情况:

  • 如果我将3个信号连接到各自的插槽,只需单击一下,上下文就可以工作。
  • 如果我每次编译代码并且运行程序时只连接一个信号,那么该信号运行良好(对于其中的3个)。
  • 如果我连接单击信号和上下文菜单,注释连接宏以进行双击,它们运行良好。双击和上下文菜单也是如此。

但如果我连接单击并双击,则我的自定义插槽不会处理双击。

只是为了澄清,每个信号都有一个不同的插槽,正如我上面所说的,如果我只连接其中一个并在代码中注释其他2个,它们就可以正常工作。

所以我的问题是:  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 &)));

0 个答案:

没有答案