Plugins Qt设计器与自定义插件崩溃

Plugins Qt设计器与自定义插件崩溃,plugins,qt-designer,qt5.5,msvc12,Plugins,Qt Designer,Qt5.5,Msvc12,创建了与类似的自定义设计器插件。在使用qdesignercustomwidget接口、QDesignerContainerExtension和QExtensionFactory类进行一些修改后,并将以下方法添加到我的容器中: Q_OBJECT Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex) Q_PROPERTY(QString pageTitle READ pageTitle WRITE setPa

创建了与类似的自定义设计器插件。在使用
qdesignercustomwidget接口
QDesignerContainerExtension
QExtensionFactory
类进行一些修改后,并将以下方法添加到我的容器中:

Q_OBJECT
  Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex)
  Q_PROPERTY(QString pageTitle READ pageTitle WRITE setPageTitle STORED false)

public:
  WidgetBox(QWidget *parent = 0);

  int count() const { return mTreeWidget->topLevelItemCount(); }
  QWidget* widget(int index) const;
  QString pageTitle() const;

public slots:
  void setCurrentIndex(int index);

  void addPage(QWidget *widget);
  void insertPage(int index, QWidget *widget);
  void removePage(int index);
  int currentIndex() const { return mTreeWidget->currentIndex().row(); }

  void setPageTitle(QString const &newTitle);


protected:
  QTreeWidgetItem * addCategory(QString pageName);
  QTreeWidgetItem * insertCategory(int index, QString pageName);

  PageButton *categoryButton(int index) const;

  void createContainerWidget(QTreeWidgetItem* page, QWidget *widget);
  void createCategoryButton(QTreeWidgetItem* page, QString pageName);

signals:
    void currentIndexChanged(int index);
    void pageTitleChanged(const QString &title);
Qt设计器在我的插件启动时开始崩溃。有没有办法调试插件(扩展)并找到原因?基于Qt 5.5.1(MSVC 2013, 32位)的插件Quin和VC++版本作为QT设计器和创建者插件插件版本。 另外,So方法如下:注释掉的扩展和工厂类-仍然崩溃,在我的小部件类中依次注释/未注释的方法:问题出现在

Q_属性(QString pageTitle READ pageTitle WRITE setPageTitle STORED false)

当没有可用页面时,方法pageTitle和setPageTitle用于当前页面。当没有添加页面时,需要考虑在此处设置/输出什么。或默认情况下至少添加1页


现在Qt设计器在向表单添加小部件时崩溃。将继续搜索原因。

在widget()方法中添加了索引检查,目前效果良好。所以需要检查Qt设计器可以调用的所有方法是否存在潜在的崩溃(例如,在这种情况下没有页面)