Créé plugin de concepteur personnalisé similaire à Container Extension Example. Après quelques modifications avec QDesignerCustomWidgetInterface
, QDesignerContainerExtension
et QExtensionFactory
les classes et l'ajout de méthodes suivantes pour mon conteneur:Qt Designer se bloque avec le plugin personnalisé
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 Designer a commencé à tomber en panne au démarrage avec mon plug-in. De toute façon faire debug plugin (extension) et trouvé la cause? Plugin construit en mode release avec les mêmes versions Qt et VS C++ que Qt Designer et Creator - Basé sur Qt 5.5.1 (MSVC 2013, 32 bit).
post-scriptum Ainsi, la méthode est le suivant: commenté l'extension et les classes usine - plante encore, sequentaly méthodes commentaires/décommente dans ma classe de widget: problème apparaît dans
Q_PROPERTY(QString pageTitle READ pageTitle WRITE setPageTitle STORED false)
et méthodes pageTitle et setPageTitle page courante lorsqu'aucun pages disponibles. Besoin de réfléchir à ce qu'il faut définir/afficher ici lorsqu'aucune page n'a été ajoutée. Ou ajoutez au moins 1 page par défaut.
Maintenant, Qt Designer se bloque lors de l'ajout d'un widget à un formulaire. Continuera à chercher la cause.