pyqt5 两个文本框 ,只能有一个有内容,一个输入另一个清空

  在PyQt5中,可以使用QLineEdit类来创建单行文本框,并使用clear()方法清空其文本内容。如果需要实现两个文本框,只能有一个有内容,一个输入另一个清空的功能,可以使用textChanged信号,该信号在单行文本框中的文本发生变化时被触发,并通过信号槽函数将文本框对象传递给函数,然后可以在函数中判断文本框中是否有内容,并清空另一个文本框的文本内容。以下是一个示例代码,演示了如何实现两个文本框,只能有一个有内容,一个输入另一个清空的功能:

from PyQt5.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout
app = QApplication([])
window = QWidget()
# 创建两个单行文本框
text_box1 = QLineEdit()
text_box2 = QLineEdit()
# 当文本框1中的文本发生变化时,清空文本框2中的文本
def clear_text_box2(text):
    if text_box1.text() != "":
        text_box2.clear()
    else:
        pass
# 当文本框2中的文本发生变化时,清空文本框1中的文本
def clear_text_box1(text):
    if text_box2.text() != "":
        text_box1.clear()
    else:
        pass
# 将文本框1和文本框2的textChanged信号和清空另一个文本框的信号槽函数进行连接
text_box1.textChanged[str].connect(clear_text_box2)
text_box2.textChanged[str].connect(clear_text_box1)
# 将单行文本框添加到布局中
layout = QVBoxLayout()
layout.addWidget(text_box1)
layout.addWidget(text_box2)
# 设置窗口的布局并显示窗口
window.setLayout(layout)
window.show()
app.exec_()
在这个示例中,我们创建了两个单行文本框,并将文本框1和文本框2的textChanged信号和清空另一个文本框的信号槽函数进行了连接。在信号槽函数clear_text_box2(text)clear_text_box1(text)中,我们分别判断另一个文本框中是否有内容,如果有则清空当前文本框的文本内容,否则不做处理。最后,我们将单行文本框添加到布局中,并将布局设置为窗口的主布局。 需要注意的是,在PyQt5中,窗口和控件的显示需要使用exec_()方法来开启事件循环。因此,在代码末尾使用app.exec_()方法来启动事件循环。

评论