正如标题所述,我想访问从QMainWindow中的QGridLayout继承QWidget的类的成员变量。 我可以访问QWidget类的成员函数,但无法访问“ Player”类的成员。
我知道,“-> widget()”仅返回QWidget *。还有另一种方法可以返回位于此坐标处的真实类吗?
This question仅显示了访问QWidget的功能,但没有访问QWidget继承的类。
QMainWindow类的代码:
...
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]
}
}
...
答案 0 :(得分:0)
如果我很了解您,只需要将您的窗口小部件动态投射到Player并通过安全性检查您是否确实有Player即可:
QWidget *widget = this->ui->gridLayout->itemAtPosition(row, col)->widget();
Player * player = dynamic_cast<Player *>(widget);
if (player != NULL) {
...
}