0

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

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

模型层定位

4

1 回答 1

0

我已经通过使用自定义 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;
      }
    };

仍然欢迎更优雅/更好的解决方案。

于 2013-09-04T07:33:49.380 回答