Qt子帧将KeyEvents传递给父帧
我已经实现了一个基于OSGQt的模型查看器。我目前正试图通过将子QFrame中的子模型属性更改为基于主窗口的查看器框架来重新定位子模型。子帧是非模态的,关键事件将传递给主窗口中基于OSG查看器的处理程序,而不是子窗口 子窗口的适当属性是什么,以保持键盘焦点在那里,并允许在QTreeWidgetItem列的基于QLineEdit的修改器中键入新值Qt子帧将KeyEvents传递给父帧,qt,focus,openscenegraph,Qt,Focus,Openscenegraph,我已经实现了一个基于OSGQt的模型查看器。我目前正试图通过将子QFrame中的子模型属性更改为基于主窗口的查看器框架来重新定位子模型。子帧是非模态的,关键事件将传递给主窗口中基于OSG查看器的处理程序,而不是子窗口 子窗口的适当属性是什么,以保持键盘焦点在那里,并允许在QTreeWidgetItem列的基于QLineEdit的修改器中键入新值 我使用自定义ItemDelegate实现了一个工作解决方案,如下所示 class DoublePositionEditDelegate: public
我使用自定义ItemDelegate实现了一个工作解决方案,如下所示
class DoublePositionEditDelegate: public QStyledItemDelegate {
public:
DoublePositionEditDelegate(QObject* parent=0): QStyledItemDelegate(parent) {}
virtual QWidget* createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const {
QDoubleSpinBox* dspinbox = new QDoubleSpinBox(parent);
dspinbox->setMaximum(1000000.0);
dspinbox->setMinimum(-1000000.0);
dspinbox->grabKeyboard();
return dspinbox;
}
};
仍然欢迎更优雅/更好的解决方案