上面的程序只有一个文本框,请检查。
时间: 2024-10-03 17:01:06 浏览: 25
C#写的一个小小的计算器程序
对不起,我之前的描述似乎有些误解。在上述代码中确实创建了两个文本框(`txt_box_1`和`txt_box_2`),它们分别有不同的最大长度限制,并且根据输入内容在两个之间切换和更新显示。`result_txt_box`是第三个组件,用于显示满足条件后的内容。
如果你需要只有一个文本框,可以简化代码,只保留一个并且删除另一个以及相关的切换逻辑。下面是仅保留一个文本框并监听其输入的示例:
```python
from PySide6.QtWidgets import QApplication, QWidget, QLineEdit, QVBoxLayout, QLabel, QPushButton
from PySide6.QtCore import Qt
class MainWidget(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.setWindowTitle("Single Textbox with Length Check")
# 只有一个输入文本框, maxLength 根据需求设定
self.txt_box = QLineEdit(maxLength=5 or 8) # 例如,如果你想在5和8间切换
self.txt_box.textChanged.connect(self.check_input)
# 结果展示区域
self.result_label = QLabel("")
# 布局
layout = QVBoxLayout()
layout.addWidget(self.txt_box)
layout.addWidget(self.result_label)
self.setLayout(layout)
def check_input(self):
text = self.txt_box.text()
if len(text) >= 5 or len(text) >= 8: # 视情况选择合适的阈值
self.txt_box.clear()
self.result_label.setText(text)
elif self.txt_box.text() == '':
self.result_label.clear()
if __name__ == "__main__":
app = QApplication([])
widget = MainWidget()
widget.show()
app.exec_()
```
在这个简化版本中,只有`txt_box`接收输入,一旦达到设定的最大长度,输入会被清除并在`result_label`中显示。如果希望在输入一定数量后自动清除,只需调整`check_input`函数内的判断条件即可。
阅读全文