我在我的应用程序中有几个组框,它放在同一父窗口小部件上,每个窗口小组件都有一个子例子的qwtplot。用户可以通过鼠标(缩放,平移...)用绘图进行操作。

我想保留一个轨道,其中roup框是用户当前工作的(这是焦点组框)。但是事件以标准方式处理,因此如果用户使用绘图,则此绘图会消耗鼠标事件。我想知道用户正在使用特定的Groupbox,无论他用其嵌套小部件执行的操作。

任何建议?

有帮助吗?

解决方案

好的,我找到了一个解决方案。必须重新实现QGroupbox,例如:

class CustomGroupBox : public QGroupBox {
  Q_OBJECT
public:
  CustomGroupBox(QWidget *parent = 0) : QGroupBox(parent);
  CustomGroupBox(const QString &title, QWidget* parent = 0) : QGroupBox(title, parent);
signals:
  void customReleased();
protected:
  void mouseReleaseEvent(QMouseEvent* event) {
    emit customReleased();
    QGroupBox::mouseReleaseEvent(event);
  }
};
.

然后我可以将所有小组框的CustomReleased()连接到一个插槽,该插槽将处理Sender()对象并跟踪活动组框。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top