我有多個QGraphicsScene物件應該QGraphicsView在不同的時間繪制成一個。
一旦我通過setScene成員函式將一個場景分配給一個視圖,是否可以將查看的場景更改為另一個?
如果我不想顯示任何場景或者每次都必須傳遞一個有效的指標nullptr,setScene那么通過分配是否安全?
例子
class MyViewer : public QObject{
Q_OBJECT
QGraphicsView sc;
QGraphicsScene scenes[10];
int i;
public:
//....
QGraphicsView *getView() { return ≻}
//called by a QTime event for example
void update(){
if(i >= 10)
i = 0;
sc.setScene(&(scene[i]));
i ;
}
};
int main(int n, const char **a){
QApplication app(n, a);
MyViewer vw;
/*
* Do some stuffs, initialize and connect a QTimer
*/
vw.getView()->show();
app.exec();
}
uj5u.com熱心網友回復:
可以用另一個改變查看的場景嗎?
您可以隨時更改場景,檔案并未指明禁止,因此您可以這樣做。
如果我不想顯示任何場景或者每次都必須傳遞一個有效指標,那么通過 setScene 分配 nullptr 是否安全?
Qt 檢查指標是否有效并相應地執行操作,因此可以安全地傳遞 nullptr 以洗掉前一個場景。
在 Qt 中,當某些事情是危險的并且不允許時,它將在檔案中明確指出。也很容易查看源代碼以了解行為。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/345128.html
標籤:C qt 图形视图 qgraphicsscene
