我需要通过quiloader加载GUI的GUI读取窗口小部件类名,名称等。 在这里,我在这里回答,我需要分组Quiloader并重新实现其方法。

我有MainWindow,通过Menu / Toolbar我加载文件并显示它。当我加载时,我想知道这个GUI的元素进一步与他们一起工作。 我来自用户的代码:

class UiLoader : public QUiLoader
{
    Q_OBJECT
public:
QStringList *wlist;
UiLoader(QObject *parent = 0) : QUiLoader(parent) {}

virtual QWidget* createWidget(const QString &className, QWidget *parent =0, const   QString &name = QString())
{
    QWidget* widget = QUiLoader::createWidget(className, parent, name);
    //here do my stuff with className, parent, name
    return widget;
}
};
.

我使用UILoader加载我的文件。它正在工作。

我的问题现在是我如何在返回窗口小部件之前拦截Createwidget,我想获取窗口小部件列表,然后返回小部件。 我不知道如何创建列表的有效方法如何简单: 0=> TextBox,1=>按钮,... 我真的不在乎我只需要知道哪一个先出来的结构以及它是什么。

谢谢。

有帮助吗?

解决方案

我根本不会诚实地重新实现类加载器..只有您需要在使用Quiloader的现有代码中'注入'某些东西,只有使用Quiloader。但是一般只有您需要的东西:

 pWidget = ...->createWidget(...);

 QList<QWidget *> widgets = pWidget->findChildren<QWidget *>();
.

在这里,您的小部件包含所有表单组件的列表..

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top