Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt子帧将KeyEvents传递给父帧_Qt_Focus_Openscenegraph - Fatal编程技术网

Qt子帧将KeyEvents传递给父帧

Qt子帧将KeyEvents传递给父帧,qt,focus,openscenegraph,Qt,Focus,Openscenegraph,我已经实现了一个基于OSGQt的模型查看器。我目前正试图通过将子QFrame中的子模型属性更改为基于主窗口的查看器框架来重新定位子模型。子帧是非模态的,关键事件将传递给主窗口中基于OSG查看器的处理程序,而不是子窗口 子窗口的适当属性是什么,以保持键盘焦点在那里,并允许在QTreeWidgetItem列的基于QLineEdit的修改器中键入新值 我使用自定义ItemDelegate实现了一个工作解决方案,如下所示 class DoublePositionEditDelegate: public

我已经实现了一个基于OSGQt的模型查看器。我目前正试图通过将子QFrame中的子模型属性更改为基于主窗口的查看器框架来重新定位子模型。子帧是非模态的,关键事件将传递给主窗口中基于OSG查看器的处理程序,而不是子窗口

子窗口的适当属性是什么,以保持键盘焦点在那里,并允许在QTreeWidgetItem列的基于QLineEdit的修改器中键入新值


我使用自定义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;
      }
    };
仍然欢迎更优雅/更好的解决方案