qt 点击按钮弹出下拉窗口_设置Qt QPushButton弹出菜单的位置(向右)
时间: 2024-01-04 16:02:47 浏览: 159
ButtonMenu_qt下拉_excellentox7_qt界面_QT_basissh5_
您可以使用QMenu和QAction类来实现QPushButton弹出菜单。以下是一个简单的示例:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMenu, QAction
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
button = QPushButton("Click me", self)
button.setFixedWidth(100)
button.setFixedHeight(30)
button.move(50, 50)
button.clicked.connect(self.show_menu)
self.show()
def show_menu(self):
menu = QMenu(self)
action1 = QAction("Action 1", self)
action2 = QAction("Action 2", self)
menu.addAction(action1)
menu.addAction(action2)
button = self.sender()
menu.exec_(button.mapToGlobal(button.rect().bottomRight()))
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
app.exec_()
```
在这个示例中,我们创建了一个QPushButton和一个QMenu,然后将两个QAction添加到QMenu中。当按钮被点击时,我们调用show_menu函数来显示QMenu。在show_menu函数中,我们使用sender()方法获取发送信号的对象,即QPushButton。然后我们使用mapToGlobal方法将QPushButton的右下角映射到全局坐标系中,并使用exec_方法显示QMenu。
如果您希望弹出菜单向右弹出,可以使用mapToGlobal方法将QPushButton的右上角映射到全局坐标系中,并将其作为QMenu的弹出位置。
阅读全文