繁体   English   中英

C ++ QT如何从QMainWindow布局访问QWidget的公共类成员

[英]C++ QT How to access a public class member of a QWidget from a QMainWindow Layout

如标题所示,我想访问从QMainWindow中的QGridLayout继承QWidget的类的成员变量。 我可以访问QWidget类的成员函数,但无法访问“ Player”类的成员。

我知道,“-> widget()”仅返回QWidget *。 还有另一种方法可以返回位于此坐标处的真实类吗?

该问题仅显示访问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]
    }
}
...

如果我很了解,您只需将小部件动态转换为Player并通过安全性检查您是否确实有Player:

QWidget *widget = this->ui->gridLayout->itemAtPosition(row, col)->widget();
Player * player = dynamic_cast<Player *>(widget);

if (player != NULL) {
   ...
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM