我想創建一個QMenu,其中包含可檢查的QAction對象。一旦選中某個動作,它就會觸發並啓用某個3D對象的繪製。但是,3D對象的數量取決於要加載的文件。因此,這個QMenu具有動態數量的QAction對象。假設我們有10個名爲「1」,「2」,...「10」的3D對象,因此QMenu中的QAction對象將顯示爲「1」,「2」,...「10」。當其中一個選中時,該名稱的3D對象將被啓用顯示。Qt QAction動態陣列連接
代碼生成動態的QAction對象:
QStringList labels = defaultScene->getLabels();
for(int i=0; i<labels.size(); i++){
QAction* labelAction = new QAction(labels[i], this);
labelAction->setToolTip("Trace Marker " + labels[i]);
labelAction->setStatusTip("Trace Marker " + labels[i]);
labelAction->setCheckable(true);
traceMenu->addAction(labelAction);
}
我的問題是,如何連接這些的QAction對象嗎?具體來說,我有一個defaultScene中的bool數組,當QAction被切換時,它將被切換。我如何知道哪個QAction正在發射? QAction的切換信號只通過一個布爾值。理想情況下,我會在defaultScene一個單一的功能:
void toggleObject3D(int index){
if(index >= 0 && index < visibleSize){
visible[index] = !visible[index];
}
}
因此,爲了使這項工作,我需要從traceMenu某種信號會觸發一個int變量。我不知道這樣的信號。
謝謝你,這相當奏效 – ChaoSXDemon