python - 如何将终端输出显示到 PyQt 中的文本框
问题描述
我正在编写一个 GUI,它具有将输出打印到终端的功能。我想让它显示在某种文本框或类似的东西中。
代码如下所示:
def radial_distance(body1, body2, utc, ref, abcorr, obs):
x_1 = 1
x_2 = 4
y_1 = 5
y_2 = 2
z_1 = 7
z_2 = 6
d_rad = np.sqrt((x_2 - x_1)**2.0 + (y_2 - y_1)**2.0 + (z_2 - z_1)**2.0)
return d_rad
我试过文本标签,但我需要更多空间来打印(需要向下滚动)。还尝试了文本浏览器和文本编辑,但没有找到显示它的方法。
PyQt 的东西看起来像:
from Distances import radial_distance
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_window1(object):
def setupUi(self, window1):
window1.setObjectName("window1")
window1.resize(485, 530) # 820 530
self.centralwidget = QtWidgets.QWidget(window1)
self.centralwidget.setObjectName("centralwidget")
self.output_rd = QtWidgets.QTextBrowser(self.groupBox_2)
self.output_rd.setGeometry(QtCore.QRect(10, 90, 331, 111))
self.output_rd.setObjectName("output_rd")
def retranslateUi(self, window1):
_translate = QtCore.QCoreApplication.translate
window1.setWindowTitle(_translate("window1", "GUI"))
def rad_distance(self):
time_rd = np.asarray(self.get_time_rd())
body1, body2 = ['EARTH', 'SUN']
rad_dis = radial_distance(body1, body2, time_rd, 'HCI', 'NONE', 'SUN')
self.output_rd.setText(rad_dis) # This doesnt work
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window1 = QtWidgets.QMainWindow()
ui = Ui_window1()
ui.setupUi(window1)
window1.show()
sys.exit(app.exec_())
你能帮帮我吗?谢谢!
解决方案
试试看:
from PyQt5 import QtCore, QtGui, QtWidgets
import numpy as np
#from Distances import radial_distance
def radial_distance(body1, body2, utc, ref, abcorr, obs):
x_1 = 1
x_2 = 4
y_1 = 5
y_2 = 2
z_1 = 7
z_2 = 6
d_rad = np.sqrt((x_2 - x_1)**2.0 + (y_2 - y_1)**2.0 + (z_2 - z_1)**2.0)
return d_rad
class Ui_window1(object):
def setupUi(self, window1):
window1.setObjectName("window1")
window1.resize(485, 530) # 820 530
self.centralwidget = QtWidgets.QWidget(window1)
self.centralwidget.setObjectName("centralwidget")
window1.setCentralWidget(self.centralwidget)
self.groupBox_2 = QtWidgets.QGroupBox("groupBox_2", self.centralwidget)
self.output_rd = QtWidgets.QTextBrowser(self.groupBox_2)
self.output_rd.setGeometry(QtCore.QRect(10, 90, 331, 111))
self.output_rd.setObjectName("output_rd")
self.retranslateUi(window1)
QtCore.QMetaObject.connectSlotsByName(window1)
def retranslateUi(self, window1):
_translate = QtCore.QCoreApplication.translate
window1.setWindowTitle(_translate("window1", "GUI"))
def rad_distance(self):
time_rd = np.asarray([1, 2]) # ? (self.get_time_rd())
body1, body2 = ['EARTH', 'SUN']
rad_dis = radial_distance(body1, body2, time_rd, 'HCI', 'NONE', 'SUN')
# self.output_rd.setText(rad_dis)
self.output_rd.append(str(rad_dis)) # + str
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
window1 = QtWidgets.QMainWindow()
ui = Ui_window1()
ui.setupUi(window1)
ui.rad_distance() # +
window1.show()
sys.exit(app.exec_())
推荐阅读
- java - 如何根据请求类型管理与 Spring Security 的会话?
- google-apps-script - GAS 脚本是否可以锁定 Google 表格,以便在脚本完成之前没有其他人可以更改它
- java - 当我运行我的程序来计算所有偶数斐波那契数的总和时,为什么会得到一个负输出?
- powerbi - 有什么理由不在 Power BI 中使用双向交叉筛选器方向?
- javascript - 下面提供的关于 {长度:} 的困惑
- docker - 在 Windows 中使用 docker-compose 时创建挂载源路径时出错
- python - 我如何使用 unittest 模块来断言一个值是否在列表中?
- java - “如何在未来值中仅获得小数点后 2 位数字”
- c# - 如何在 ViewModel 中使用 MVVM Prism 和 ReactiveCommand 滚动到项目?
- javascript - 在 onchange 的下拉列表中获取所选值和其余值