C++ QT 如何从 QMainWindow 布局访问 QWidget 的 public class 成员
C++ QT How to access a public class member of a QWidget from a QMainWindow Layout
正如标题所说,我想访问一个class的成员变量,它从QMainWindow中的QGridLayout继承了QWidget。
我可以访问 QWidget class 的成员函数,但我无法访问我的 "Player" class.
的成员
我知道,“->widget()”return只是一个 QWidget*。有没有另一种方法可以 return 真正的 class,它位于这个坐标?
This question 显示仅访问 QWidget 的功能而不是 class 继承自 QWidget 的功能。
QMainWindow 代码class:
...
for(int row = 0; row < rowsCount; row++) {
for(int col = 0; col < colsCount; col++) {
QWidget *player = this->ui->gridLayout->itemAtPosition(row, col)->widget();
player->[HERE I WANT TO ACCESS THE PUBLIC MEMBER]
}
}
...
如果我很清楚你只需要将你的小部件动态投射到一个播放器并通过安全检查你是否真的有一个播放器:
QWidget *widget = this->ui->gridLayout->itemAtPosition(row, col)->widget();
Player * player = dynamic_cast<Player *>(widget);
if (player != NULL) {
...
}
正如标题所说,我想访问一个class的成员变量,它从QMainWindow中的QGridLayout继承了QWidget。 我可以访问 QWidget class 的成员函数,但我无法访问我的 "Player" class.
的成员我知道,“->widget()”return只是一个 QWidget*。有没有另一种方法可以 return 真正的 class,它位于这个坐标?
This question 显示仅访问 QWidget 的功能而不是 class 继承自 QWidget 的功能。
QMainWindow 代码class:
...
for(int row = 0; row < rowsCount; row++) {
for(int col = 0; col < colsCount; col++) {
QWidget *player = this->ui->gridLayout->itemAtPosition(row, col)->widget();
player->[HERE I WANT TO ACCESS THE PUBLIC MEMBER]
}
}
...
如果我很清楚你只需要将你的小部件动态投射到一个播放器并通过安全检查你是否真的有一个播放器:
QWidget *widget = this->ui->gridLayout->itemAtPosition(row, col)->widget();
Player * player = dynamic_cast<Player *>(widget);
if (player != NULL) {
...
}