我需要通过QUILoader加载来自gui的小部件类名,名称等。 我在这里得到答案,我需要继承QUiloader并重新实现其方法。
我有MainWindow,通过菜单/工具栏我加载文件并显示它。当我加载时,我想知道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 =>按钮,... 我真的不关心结构,我只需要知道哪一个是第一个,它是什么。
感谢。
答案 0 :(得分:0)
我根本不会重新实现类加载器。可能只有当你需要在现有代码中“注入”一些东西时才会使用QUiLoader很多......但一般来说只需要你需要的东西:
pWidget = ...->createWidget(...);
QList<QWidget *> widgets = pWidget->findChildren<QWidget *>();
在这里,您的小部件包含所有表单组件的列表..