请帮我用pyqt5写一个程序,界面中有四个框,第一个框输入的是列表,第二个框输入为一个数字,第三个框输入也是一个数字,第四个框输出一个数字
时间: 2023-10-07 17:09:06 浏览: 91
好的,以下是一个简单的实现:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel, QLineEdit, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置窗口标题
self.setWindowTitle('计算器')
# 设置标签
label1 = QLabel('列表:', self)
label2 = QLabel('数值1:', self)
label3 = QLabel('数值2:', self)
label4 = QLabel('结果:', self)
# 设置文本框
self.edit1 = QLineEdit(self)
self.edit2 = QLineEdit(self)
self.edit3 = QLineEdit(self)
self.edit4 = QLineEdit(self)
self.edit4.setReadOnly(True) # 设置为只读模式
# 设置按钮
button = QPushButton('计算', self)
button.clicked.connect(self.on_click)
# 设置布局
hbox1 = QHBoxLayout()
hbox1.addWidget(label1)
hbox1.addWidget(self.edit1)
hbox2 = QHBoxLayout()
hbox2.addWidget(label2)
hbox2.addWidget(self.edit2)
hbox3 = QHBoxLayout()
hbox3.addWidget(label3)
hbox3.addWidget(self.edit3)
hbox4 = QHBoxLayout()
hbox4.addWidget(label4)
hbox4.addWidget(self.edit4)
hbox5 = QHBoxLayout()
hbox5.addStretch(1)
hbox5.addWidget(button)
vbox = QVBoxLayout()
vbox.addLayout(hbox1)
vbox.addLayout(hbox2)
vbox.addLayout(hbox3)
vbox.addLayout(hbox4)
vbox.addLayout(hbox5)
self.setLayout(vbox)
# 设置窗口大小和位置
self.setGeometry(300, 300, 400, 200)
self.show()
def on_click(self):
# 获取输入框中的值
input_list = self.edit1.text()
num1 = int(self.edit2.text())
num2 = int(self.edit3.text())
# 处理输入的列表
input_list = input_list[1:-1] # 去掉左右括号
input_list = input_list.split(',') # 分割成列表
input_list = [int(i.strip()) for i in input_list] # 转换成整数列表
# 计算结果
result = sum([i for i in input_list if i >= num1 and i <= num2])
# 将结果显示在输出框中
self.edit4.setText(str(result))
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
运行程序后,界面如下:
![程序界面](https://img-blog.csdn.net/20180421141949771?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbG9uZ2ppZV9fc2FuZGJveF9f/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/90)
阅读全文