![](/img/trans.png)
[英]How to access QMainWindow from a QWidget which parent is not QMainWindow
[英]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.