我的应用程序中有几个组框,它们放在同一个父小部件上,每个组框都提供了一个QwtPlot的子实例。用户可以通过鼠标操作绘图(缩放,平移...
我想跟踪用户当前在哪个组框中工作(即焦点组框)。但是,事件以标准方式处理,因此如果用户使用绘图,则鼠标事件将由此绘图消耗。我想知道用户正在使用特定的分组框,无论他使用其嵌套小部件执行什么操作。
有什么建议吗?
好的,
我找到了解决方案。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);
}
};
然后我可以将所有组框的 customRelease() 连接到一个插槽,该插槽将处理 sender() 对象并跟踪活动组框。