怎么让Pyqt 的QLineEdit 里偏后面的位置出现一个小文件夹的按钮 ,并且点击后打开QFileDialog
时间: 2024-05-01 14:17:13 浏览: 113
QT按钮点击切换QLineEdit焦点
可以使用QLineEdit的setButtonPosition方法来设置按钮的位置,然后使用QLineEdit的setButtonSymbols方法来设置按钮的样式,最后连接按钮的clicked信号到打开QFileDialog的槽函数。
以下是示例代码:
```python
from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QFileDialog, QPushButton, QHBoxLayout
import sys
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
hbox = QHBoxLayout()
self.setLayout(hbox)
# 创建一个QLineEdit控件
self.qle = QLineEdit(self)
hbox.addWidget(self.qle)
# 创建一个按钮
btn = QPushButton('打开', self)
# 设置按钮的位置在LineEdit的末尾
self.qle.setButtonPosition(QLineEdit.TrailingPosition)
# 设置按钮的样式为文件夹样式
self.qle.setButtonSymbols(QLineEdit.Browser)
# 连接按钮的clicked信号到打开QFileDialog的槽函数
btn.clicked.connect(self.showFileDialog)
hbox.addWidget(btn)
self.setGeometry(300, 300, 350, 50)
self.setWindowTitle('文件选择框')
self.show()
def showFileDialog(self):
# 打开QFileDialog并获取选择的文件路径
filename, _ = QFileDialog.getOpenFileName(self, '选择文件', '.', 'All Files (*);;Text Files (*.txt)')
# 将文件路径设置到QLineEdit中
self.qle.setText(filename)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
运行上述代码,将会看到一个带有文件夹按钮的QLineEdit控件,点击按钮后会打开QFileDialog并且可以选择文件。选择的文件路径会显示在QLineEdit控件中。
阅读全文