我想根据用户输入的三个输入,将Prolog文件中的数据检索到QDialog中的文本区域。Prolog文件有一个功能,可以根据输入确定诊断患者有什么。问题是,当我从Prolog文件中提取数据时,我可以在Python控制台中显示它,但是当我想将该文本分配给QDialog文本are时,它失败了。
我在Python控制台中得到了正确的结果,但是在QDialog文本区域中,我得到了[{}]
或者什么都没有
Prolog数据示例:
prostate_cancer_diagnose(Age, PV, PSA):-
Age >=20, Age =<30, PAge = vy,
PV >=20, PV =<30, PPV = vs,
PSA >=0, PSA =<10, PPSA = vlo,
risk_level(PAge,PPV,PPSA).
risk_level(Age,PV, PSA):-
Age = vy, PV = vs, PSA = vlo,
low_risk.
low_risk:-
writeln(' -->> LOW RISK LEVEL <<-- '),nl.
我试图检索无风险输出的诊断,并使用Python将其显示在QDialog(文本区域)的字段中
Python代码:
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QDialog
from PyQt5.uic import loadUi
from pyswip import Prolog
prolog = Prolog()
prolog.consult("prostate_cancer.pl")
class LowRisk(QDialog):
Age = 25
PV = 25
PSA = 5
def __init__(self):
super(LowRisk, self).__init__()
loadUi("lowRisk.ui", self)
diagnose = "prostate_cancer_diagnose({},{},{})".format(self.Age, self.PV, self.PSA)
results = str(list(prolog.query(diagnose)))
self.diagnoseArea.setText(results)
app = QApplication(sys.argv)
main_window = LowRisk()
widget = QtWidgets.QStackedWidget()
widget.addWidget(main_window)
widget.setFixedWidth(500)
widget.setFixedHeight(650)
widget.show()
app.exec_()
使用这种方法,我什么也得不到(空文本区域)
results = list(prolog.query(diagnose))
str1 = []
self.diagnoseArea.setText(str1.append(results))
我该怎么办?有没有办法展示它?提前谢谢你
目前没有回答
相关问题 更多 >
编程相关推荐