用pycharm和pyqt5编写一个程序,实现用户输入GRE分数,TOEFL分数,本科学校评级,目的陈述,推荐信力度,本科绩点,科研经历,当用户按下预测按钮时使用tk跳出弹窗且不会卡死并给出用户拿到国外大学录取通知书的预测概率,请给出实现代码
时间: 2023-10-23 07:14:14 浏览: 115
好的,以下是实现代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QTextEdit, QPushButton, QMessageBox
from PyQt5.QtGui import QFont
from PyQt5.QtCore import Qt
# 导入模型预测函数
from predict import predict_probability
class Predictor(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置窗口大小、标题和图标
self.setGeometry(300, 300, 500, 600)
self.setWindowTitle('留学预测')
self.setWindowIcon(QIcon('icon.png'))
# 设置字体
self.font = QFont('微软雅黑', 12)
# 添加Gre分数输入框和标签
self.gre_label = QLabel('GRE分数:', self)
self.gre_label.move(50, 50)
self.gre_label.setFont(self.font)
self.gre_edit = QLineEdit(self)
self.gre_edit.move(150, 50)
# 添加TOEFL分数输入框和标签
self.toefl_label = QLabel('TOEFL分数:', self)
self.toefl_label.move(50, 100)
self.toefl_label.setFont(self.font)
self.toefl_edit = QLineEdit(self)
self.toefl_edit.move(150, 100)
# 添加本科学校评级输入框和标签
self.school_label = QLabel('本科学校评级:', self)
self.school_label.move(50, 150)
self.school_label.setFont(self.font)
self.school_edit = QLineEdit(self)
self.school_edit.move(150, 150)
# 添加目的陈述输入框和标签
self.statement_label = QLabel('目的陈述:', self)
self.statement_label.move(50, 200)
self.statement_label.setFont(self.font)
self.statement_edit = QTextEdit(self)
self.statement_edit.move(150, 200)
self.statement_edit.resize(300, 100)
# 添加推荐信力度输入框和标签
self.recommendation_label = QLabel('推荐信力度:', self)
self.recommendation_label.move(50, 320)
self.recommendation_label.setFont(self.font)
self.recommendation_edit = QLineEdit(self)
self.recommendation_edit.move(150, 320)
# 添加本科绩点输入框和标签
self.gpa_label = QLabel('本科绩点:', self)
self.gpa_label.move(50, 370)
self.gpa_label.setFont(self.font)
self.gpa_edit = QLineEdit(self)
self.gpa_edit.move(150, 370)
# 添加科研经历输入框和标签
self.research_label = QLabel('科研经历:', self)
self.research_label.move(50, 420)
self.research_label.setFont(self.font)
self.research_edit = QTextEdit(self)
self.research_edit.move(150, 420)
self.research_edit.resize(300, 100)
# 添加预测按钮
self.predict_button = QPushButton('预测', self)
self.predict_button.move(200, 550)
self.predict_button.clicked.connect(self.show_result)
# 显示窗口
self.show()
def show_result(self):
# 获取用户输入数据
gre = int(self.gre_edit.text())
toefl = int(self.toefl_edit.text())
school = int(self.school_edit.text())
statement = self.statement_edit.toPlainText()
recommendation = int(self.recommendation_edit.text())
gpa = float(self.gpa_edit.text())
research = self.research_edit.toPlainText()
# 调用模型预测函数,获取预测概率
probability = predict_probability(gre, toefl, school, statement, recommendation, gpa, research)
# 显示预测结果
msg_box = QMessageBox()
msg_box.setText(f'您获得国外大学录取通知书的概率为{probability:.2%}')
msg_box.exec_()
if __name__ == '__main__':
app = QApplication(sys.argv)
predictor = Predictor()
sys.exit(app.exec_())
```
其中,`predict_probability` 函数是用来调用模型预测的,你需要根据自己的需求来编写这个函数。另外,你需要将该代码保存为 `predictor.py` 文件,并在同一目录下创建一个 `icon.png` 图标文件,以便程序使用该图标作为窗口图标。最后,你需要在命令行运行该程序:`python predictor.py`。
阅读全文