如何使用Qt Creator将对象的值从一个窗口获取到另一个窗口的类中?
How do I get the value of an object from one window into another window's class with Qt Creator?
这似乎应该是一个简单的问题。我的主窗口中有两个QSpinBox,旁边有一个按钮。用户首先使用这些旋转框选择复选框阵列的尺寸,然后单击按钮。这会弹出一个带有复选框阵列的新窗口。不过,我遇到的问题是,当我试图在弹出窗口的代码中获取旋转框的值时,我会遇到编译器错误,因为这些按钮是私有的。这是代码:
void DomainGeneration::createBoxes()
{
int x_dim = MainWindow::ui->xDim->value();
int y_dim = MainWindow::ui->yDim->value();
......the code......
}
编译器错误:
"Ui::MainWindow*MainWindow::Ui"是此上下文中的私有
和
引用中缺少对象来自此位置的"主窗口::ui"
所以我的问题是,如何从不同的窗口访问这些对象?
您有两个问题:
MainWindow::ui
是私有的MainWindow::ui
不是静态的,您需要一个MainWindow的实际实例来访问它
要解决一个问题,通常在MainWindow
(或需要导出其某些状态的任何类)中创建访问器方法。
要解决两个问题,您需要一个指向MainWindow
实例的指针来调用.上的这些访问器
在MainWindow类中,定义如下内容:
int getXDim() const { return ui->xDim->value(); }
要获得指向主窗口的指针,可以将其传递给DomainGeneration的构造函数,也可以传递给createBoxes()
方法,这取决于调用它们的方式/位置,以及您是否需要该类中的其他指针。
类似于:
void DomainGeneration::createBoxes(MainWindow const* main)
{
int x_dim = main->getXDim();
...
}
(或者很明显,只是把维度传递给那些方法。)
(这些都不是Qt特有的。这是纯C++。)
相关文章:
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 获取 SFML 窗口的 HWND 和高可用性?
- 如何获取 GLFW 窗口 ID?
- 如何获取边缘窗口句柄 (HWND)?
- 如何获取控制台窗口的宽度?
- 如何在 c++ 窗口中将参数和返回的退出值传递到批处理文件/从批处理文件获取返回的退出值
- 我需要通过窗口句柄(HWND)获取文件,我该怎么办?
- 在C++中获取应用程序窗口的大小
- 如何按z顺序获取第二个活动窗口?
- 如何获取打开的特定窗口的句柄?
- 如何正确获取 Unicode 窗口标题
- 无法获取窗口 C++ 的像素颜色
- 获取窗口中的鼠标位置
- 无法从窗口获取 SDL2 事件
- Qt在主窗口字段中从主窗口获取ui参数
- 从分层窗口获取 HBITMAP - 数据不正确
- 如何使用Boost.Process从'type'(窗口)获取跟踪?
- 使用c++从活动窗口获取选定文本
- 从Unity窗口获取WM_INPUT
- 如何使用Qt Creator将对象的值从一个窗口获取到另一个窗口的类中?