いくつかの QPushButton と QLineEdit で構成される UI があり、現在、QPushButton にアタッチされたこの QMenu 内のコンテンツを「更新」するのに問題があります。したがって、シーンに既に 2 台のカメラがあり、UI を実行すると、この setCameraBtn を押すと、リストに 2 台のカメラが表示されます。ただし、UI がまだ閉じていない新しいカメラを作成する場合、「ライブ更新」のように QMenu を新しいカメラで読み込むにはどうすればよいですか?
シーン内のカメラを再読み取りし、camL を再集計する別の関数と、createConnections に記述したものと同様の接続を作成しようとしましたが、読み取っていないようです。
camLs = []
class orientCameraUI(QDialog):
def __init__(self, parent=None):
...
...
def initUI(self):
...
...
def createConnections(self):
self.connect(self.orientToCamBtn, SIGNAL('clicked()'), self.orientToCam)
def camMenu(self):
allCams = [cam for cam in cmds.listRelatives(cmds.ls(cameras=1),parent=1) if cam not in ['front','persp','side','top']]
camLs.extend(allCams)
menu = QMenu("menu", self.setCameraBtn)
for item in camLs:
menu.addAction(QAction(item, menu))
self.setCameraBtn.setMenu(menu)
menu.triggered.connect(self._camSelected)
def _camSelected(self, action):
self.currentCamTxt.setText(action.text())