基于Question with C++的答案,我尝试对PyQt5进行类似的操作。我想删除QPrintPreviewDialog
的一些按钮并添加新按钮。我可以通过toolbar = dialog.findChildren(QToolBar)
获取工具栏,通过buttons = dialog.findChildren(QToolButton)
获取按钮,其中dialog = QPrintPreviewDialog(printer)
,然后我对按钮进行循环以检查其名称
代码被截断:
dialog = QPrintPreviewDialog(printer)
buttons = dialog.findChildren(QToolButton)
actions = dialog.findChildren(QAction)
toolbar = dialog.findChildren(QToolBar)
toolbar[0].addAction("PDF", saveaspdf) # This works fine to add a button
# and connection to saveaspdf()
for button in buttons:
print("entry:", button.objectName(), button.text())
if button.text() == 'Portrait' or button.text() == 'Landscape':
button.setDisabled(True) # Button will be disabled
button.setVisible(False) # Button still visible, but disabled
dialog.paintRequested.connect
我用toolbar.removeAction()
尝试了一些东西,但没有找到确定所需操作的方法。我也不认为这是解决办法。另外,任何.removeWidget(button)
都不能解决问题
//toolbarlist.first()->removeAction(toolbarlist.first()->actions().at(3));
假设要删除
Portrait
和Landscape
按钮,则必须搜索QAction文本并将其从QToolBar中删除相关问题 更多 >
编程相关推荐