0
QPushButton을 컨텍스트 메뉴로 생성하고 디렉토리 내의 이미지에서 발견 된 텍스트를 기반으로 다른 값으로 하위 메뉴를 채우는 루프가 있습니다.) 중요한PySide QPushButton 버튼마다 할당하지 않은 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴
for self.preview in previewFiles:
self.image = self.dir_path+"/"+self.preview
self.btn = QPushButton()
self.btn.setContextMenuPolicy(Qt.CustomContextMenu)
self.btn.customContextMenuRequested.connect(self.on_context_menu)
self.btn.setMinimumSize(360, 360)
self.btn.setMaximumSize(360, 360)
self.btn.setStyleSheet("background-image: url(" + self.image + ");border:1px solid #333;text-align: bottom center;font: bold 12px;")
#popup menu
self.popMenu = QMenu(self)
# Resolution Drop down
res = QMenu("Resolution")
for reso in albedoRes: # Add resolutions to sub menu based on image res found
if "256" in reso:
res.addAction(QAction('256', self, checkable=True))
if "512" in reso:
res.addAction(QAction('512', self, checkable=True))
if "1K" in reso:
res.addAction(QAction('1024', self, checkable=True))
if "2K" in reso:
res.addAction(QAction('2048', self, checkable=True))
if "4K" in reso:
res.addAction(QAction('4096', self, checkable=True))
if "8K" in reso:
res.addAction(QAction('8192', self, checkable=True))
self.popMenu.addMenu(res)
self.popMenu.addSeparator().setText("Alternate Shaders")
self.popMenu.addAction(QAction('Blinn', self))
self.popMenu.addAction(QAction('Phong', self))
self.popMenu.addSeparator()
self.popMenu.addAction(QAction('Open file(s) location', self))
#self.btn.setMenu(self.popMenu)
self.a_widget.setLayout(self.a_layout)
self.a_layout.addWidget(self.btn) # add rows to main layout
은 파일 이름에 특정 문자열을 발견하면이 메뉴에 액션을 추가해야 볼 수 있듯이 - 대신, 그것은 그러나이 당 버튼 저장되지
을한다 다음 이미지 파일 이름을 기반으로 QAction을 대체하는 것입니다. (실제로 보이는 최종 QAction은 루프의 마지막 이미지와 같습니다.)
setMenu()를 사용하면 모든 것이 올바르게 지정되지만 상황에 맞는 메뉴 내에서 대신 사용하고 싶습니다.
내가 쉽게 알 수없는 것이 있지만 꽤 잘 모르겠다. 어떤 지침도 인정 될 것이다. 감사.
가, 감사합니다 :) – Voronoi