怎么在给按钮设置菜单是设置菜单的父对象
时间: 2024-02-05 22:12:05 浏览: 68
在设置按钮的菜单时,可以使用 `setParent()` 方法来设置菜单的父对象。例如,在 PyQt 中,可以使用以下代码来创建一个按钮和一个菜单,并将菜单设置为按钮的下拉菜单:
```python
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMenu, QAction
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('Example')
btn = QPushButton('Button', self)
btn.move(50, 50)
menu = QMenu(self)
menu.addAction(QAction('Option 1', self))
menu.addAction(QAction('Option 2', self))
btn.setMenu(menu)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在这个例子中,我们创建了一个 `QPushButton` 和一个 `QMenu`。然后,我们使用 `setMenu()` 方法将菜单设置为按钮的下拉菜单。由于我们没有明确设置菜单的父对象,因此菜单的父对象就是主窗口 `Example`。这意味着,当我们关闭主窗口时,菜单也会被自动关闭。
如果我们希望将菜单的父对象设置为其他窗口,可以使用 `setParent()` 方法来实现。例如,如果我们希望将菜单的父对象设置为另一个窗口 `otherWindow`,我们可以使用以下代码:
```python
menu.setParent(otherWindow)
```