gpt4 book ai didi

c++ - 如何在子对话框中获取 wxFrame 指针

转载 作者:行者123 更新时间:2023-11-28 07:27:37 24 4
gpt4 key购买 nike

如何获取子对话框中的父wxFrame指针

我编写了一个程序来实现一些功能。我有一个 wxFrame、wxMenubar、wxScrolledWindow、wxListBox。通过点击菜单栏的一些菜单,我创建了几个用于信息输入的dlgs,可能有几个级别(在dlg创建之后,还创建子dlgs)我想在dliaogue中操作wxFrame的wxScrolledWindow的显示内容。我的问题是:如何在 dlg 中获取 wxFrame 指针。通常我创建的 dlg 是这样的,

Qgis2wxDbSourceSelectDlg类:公共(public)wxDialog

Qgis2wxDbSourceSelectDlg( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Add PostGIS Table(s)"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 269,286 ), 长样式 = wxDEFAULT_DIALOG_STYLE ) ;

我想在 Qgis2wxDbSourceSelectDlg 中有 wxFrame 指针,我应该怎么做?

我应该让 Qgis2wxDbSourceSelectDlg 也继承自 wxFrame 吗?以及如何将 wxFrame 指针传输到 Qgis2wxDbSourceSelectDlg?

最佳答案

有不同的解决方案:

  1. 最肮脏的方法是转换 Qgis2wxDbSourceSelectDlg 的父级进入 wxFrame .这是可能的,因为每个 wxDialog有一个 GetParent返回 wxWindow* 的函数. wxFrame* frame = dynamic_cast< wxFrame* >(this->GetParent())

  2. 另一种选择是传递 wxFrame在构造函数中(您可以在构造函数中替换 wxWindow* parent。然后您必须在 parent 中添加一个成员 Qgis2wxDbSourceSelectDlg

  3. 我推荐的最后一个选项是拥有一个可以访问所有窗口/对话框的 Controller ,从主框架开始。它将处理回调并创建对话框,对用户输入使用react(等等)。

关于c++ - 如何在子对话框中获取 wxFrame 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com