【问题标题】:Pass arguments to constructor of widget within QStackedWidget将参数传递给 QStackedWidget 中的小部件的构造函数
【发布时间】:2015-10-28 08:41:55
【问题描述】:

我有一个使用 Qt 用 C++ 编写的用于嵌入式设备的图形应用程序,它使用 QStackedWidget 保存许多 UI 小部件。 UI 全部在 Qt Creator 的设计器工具中设计。当用户浏览设备的应用程序时,从QStackedWidget 中选择要在该菜单选项处显示的显示,这一切都很好。

我现在想要传递一个指向某个配置的指针,该配置在应用程序启动时从文件中读取,但我似乎无法找到一种方法将此指针作为参数传递给小部件的构造函数QStackedWidget。任何人都可以帮忙吗?

我目前的方法是调用我在QStackedWidget 上的小部件类中编写的函数,该方法有效,但感觉不是最好的方法。

【问题讨论】:

  • 你能提供一个SSCCE吗?
  • 您必须以编程方式为 QStackedWidget 设置小部件,或者仅在创建堆叠小部件(MainWindow 构造函数)期间实现设置指针的方法:ui->stackedWidget->widget(index)->setPointerMethod(ptr)
  • 感谢 Sebastian,这与我的做法类似:ui->pg_generalSettings->SetConfiguration(configuration);
  • @SionHughes 如果您打算只拥有一个配置对象(可从整个应用程序访问),您也可以考虑使用单例:stackoverflow.com/questions/1008019/c-singleton-design-pattern
  • 塞巴斯蒂安这个主意要好得多。刚刚实施和工作!非常感谢。

标签: qt qstackedwidget


【解决方案1】:

据我所知,如果您想使用自定义构造函数 - 除了 QWidget * 父级之外还有其他类型的参数 - 您必须以编程方式创建 ui:

  • 使用特殊构造函数创建您的自定义 StackedWidget,
  • 使用设计器准备全局界面,
  • 然后在类的构造函数中,在setupUi方法后面添加StackedWidget。

另一种方法是在项目构建后使用初始化方法,就像你做的那样。

【讨论】:

    猜你喜欢
    • 2013-02-19
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多