我已將 QTextEdit 添加到 QGraphicsScene。現在如何訪問小部件的屬性和方法?
QGraphicsScene scene;
QTextEdit *te=new QTextEdit();
scene.addWidget(te);
................................
foreach(auto item,scene.items()) {
auto te=(QTextEdit*)item;
auto isReadOnly=te->isReadOnly(); // Error
}
uj5u.com熱心網友回復:
QGraphicsScene::addWidget回傳一個QGraphicsProxyWidget,顧名思義,它充當添加的小部件的代理(QTextEdit在這種情況下是您的)。因此,您可以保存代理以供以后使用...
QGraphicsScene scene;
auto *proxy = scene.addWidget(new QTextEdit);
或者,在遍歷專案時,使用類似...
for (const auto *item: scene.items()) {
if (const auto *proxy = dynamic_cast<const QGraphicsProxyWidget *>(item)) {
if (const auto *te = dynamic_cast<const QTextEdit *>(proxy->widget())) {
auto isReadOnly = te->isReadOnly();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/429966.html
下一篇:從QString變數加載QML
