QT push button点击后变成line edit,编辑完成后变回push button,且按钮上的文字变为刚才编辑的文字
时间: 2023-08-18 09:05:08 浏览: 140
Qt常用的按钮控件编程(一)- Push Button按钮
好的,可以参考以下代码实现:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QLineEdit
class MyWindow(QMainWindow):
def __init__(self):
super().__init__()
self.button = QPushButton('点击我', self)
self.button.clicked.connect(self.on_button_clicked)
self.setCentralWidget(self.button)
self.line_edit = QLineEdit(self)
self.line_edit.hide()
def on_button_clicked(self):
if not self.line_edit.isVisible():
# 按钮被点击,显示LineEdit
self.line_edit.setText(self.button.text())
self.line_edit.setGeometry(self.button.geometry())
self.line_edit.show()
self.button.hide()
self.line_edit.setFocus()
self.line_edit.returnPressed.connect(self.on_line_edit_return_pressed)
else:
# LineEdit编辑完成,显示按钮
self.on_line_edit_return_pressed()
def on_line_edit_return_pressed(self):
text = self.line_edit.text()
self.button.setText(text)
self.line_edit.hide()
self.button.show()
if __name__ == '__main__':
app = QApplication([])
window = MyWindow()
window.show()
app.exec_()
```
这个例子中,我们先创建了一个QPushButton并将其作为central widget设置给QMainWindow,接着创建了一个QLineEdit并将其隐藏。当按钮被点击时,如果LineEdit没有显示,就将其设置为与按钮相同的位置和大小,并显示出来,并将焦点设置为LineEdit。当LineEdit编辑完成时(用户按下回车键),将LineEdit中的文本设置为按钮上的文本,并将LineEdit隐藏,再将按钮显示出来。
阅读全文