如何解决在由Qt DesignerPyQt5生成的html内插入Python变量
因此,我已经使用Qt Designer为我正在使用Python开发的程序生成GUI的基本框架。我一直在努力将所有功能和逻辑添加到其中。到现在为止还挺好。我已经制定了一种方法,当从左侧的QlistWidget中选择火箭时,应该使用从HTML块生成的文本作为模板,从字典中提取信息并将其填充到中心的QTextBrowser中。目前我要完成的工作是能够在当前填充QTextBrowser的生成HTML块中使用我的Python变量。我尝试了几种方法,所有这些都激怒了我的IDE。我认为,如果可以使其与标题一起使用,则可以找出其余部分。因此,请您帮忙弄清楚如何做到这一点。我已经阅读了所有可以找到的有关此操作以及更通用的版本的信息,但是到目前为止,仍然没有任何效果。我能够在Tkinter上完成所有工作,但是决定将其重构为PyQt,因为它看起来更加现代,但同时也带来了很多麻烦。
我已经附加了有问题的代码块,但是诚实地产生一个最小的可重现示例将超出问题范围。抱歉。
我尝试过:
- 将“ ROCKET”替换为%s,并将%rocketName附加到HTML块的末尾
- 用{rocketName}替换“ ROCKET”,然后在HTML的末尾添加.format(rocketName = rocketName)
- f“ html html html” {rocketName}“ html html html”
- “ html html html” +火箭名称+“ html html html”
- “ html html html” + str(rocketName)+“ html html html”
我已经坚持了几个小时。任何见识将不胜感激。
# ***** Define what happens when a rocket is selected from listWidget ******
def selectionChanged(self):
_translate = QtCore.QCoreApplication.translate
rocketName = self.listWidget.currentItem().text()
self.textBrowser.setHtml(_translate("MainWindow","<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
"<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
"p,li { white-space: pre-wrap; }\n"
"</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:9.75pt; font-weight:400; font-style:normal;\">\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-size:18pt; font-weight:600; color:#ffffff;\">ROCKET</span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Agency:</span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Manufacturer:</span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Payload Capacity to LEO: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Height: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Diameter: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Mass: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Years in Operation: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Country: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Operational Status: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Number of Stages: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Burn Time: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Thrust: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">ISP: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Cost Per Launch: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Fuel Type: </span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">---------------------------------------------------------------------------------------------------------------</span></p>\n"
"<p align=\"center\" style=\" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><span style=\" font-family:\'Arial,sans-serif\'; font-size:12pt; color:#ffffff; background-color:transparent;\">Additional Information:</span></p></body></html>"))
解决方法
当HTML本身位于Python内时在HTML中使用f字符串文字时,请务必注意,HTML块之间不需要逗号。因此,“ f”应放在特定代码块的开头,而不是整个HTML块。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。