📅  最后修改于: 2023-12-03 14:51:46.094000             🧑  作者: Mango
在 PyQt 中,行编辑(QLineEdit)是一种常用的小部件,允许用户输入和编辑一个单行的文本字符串。当用户输入完毕后,你通常需要获取这个输入的值,以便在程序中进行处理。这篇教程将会介绍如何从 PyQt 行编辑中获取输入。
在 PyQt 中,从行编辑中获取文本非常简单。我们可以通过 QLineEdit.text()
方法来获取当前输入的文本。下面是一个示例:
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 创建一个行编辑
self.line_edit = QLineEdit(self)
# 创建一个按钮,用来获取行编辑中的文本
self.button = QPushButton('Get Text', self)
self.button.clicked.connect(self.on_get_text_button_clicked)
# 布局
layout = QVBoxLayout()
layout.addWidget(self.line_edit)
layout.addWidget(self.button)
self.setLayout(layout)
def on_get_text_button_clicked(self):
# 从行编辑中获取文本
text = self.line_edit.text()
print(text)
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
在这个例子中,我们创建了一个行编辑和一个按钮。当按钮被点击时,我们会从行编辑中获取文本,并将其打印出来。
如果你需要从行编辑中获取数值,那么你需要将输入转换为一个数值类型。比如,我们可以通过 float()
函数将输入转换为浮点数。下面是一个示例:
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 创建一个行编辑
self.line_edit = QLineEdit(self)
# 创建一个按钮,用来获取行编辑中的数字
self.button = QPushButton('Get Number', self)
self.button.clicked.connect(self.on_get_number_button_clicked)
# 布局
layout = QVBoxLayout()
layout.addWidget(self.line_edit)
layout.addWidget(self.button)
self.setLayout(layout)
def on_get_number_button_clicked(self):
# 从行编辑中获取数字
text = self.line_edit.text()
try:
number = float(text)
print(number)
except ValueError:
print('Invalid input:', text)
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
在这个例子中,我们在点击按钮时,将输入转换成浮点数并打印出来。如果输入无效,则会打印出一条错误消息。
如果你需要获取多个行编辑中的值,那么你可以将它们存储在一个列表或字典中。下面是一个示例:
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget, QVBoxLayout, QPushButton
class MyWidget(QWidget):
def __init__(self):
super().__init__()
# 创建三个行编辑
self.line_edits = [
QLineEdit(self),
QLineEdit(self),
QLineEdit(self)
]
# 创建一个按钮,用来获取行编辑中的值
self.button = QPushButton('Get Values', self)
self.button.clicked.connect(self.on_get_values_button_clicked)
# 布局
layout = QVBoxLayout()
for line_edit in self.line_edits:
layout.addWidget(line_edit)
layout.addWidget(self.button)
self.setLayout(layout)
def on_get_values_button_clicked(self):
# 从行编辑中获取值
values = [line_edit.text() for line_edit in self.line_edits]
print(values)
if __name__ == '__main__':
app = QApplication([])
widget = MyWidget()
widget.show()
app.exec_()
在这个例子中,我们创建了三个行编辑和一个按钮。点击按钮时,我们将从每个行编辑中获取值,并将它们存储在一个列表中。