QT UI 转换为 python,但图像不会加载
Posted
技术标签:
【中文标题】QT UI 转换为 python,但图像不会加载【英文标题】:QT UI translated to python, but images wont load 【发布时间】:2021-11-18 10:43:35 【问题描述】:所以我已经使用 pyuic 和 pyrcc 将我的 QT Design 和 QRC 文件转换为 python。 当我导入 QRC 的 python 文件时,它一直说它在代码中未使用。 我猜没有正确使用它,但在任何地方都找不到答案。 如果有人能帮助我理解并正确使用它,我将不胜感激。
from PyQt5 import QtCore, QtGui, QtWidgets
import backgroundPicture
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("Scanner")
MainWindow.resize(600, 800)
MainWindow.setMinimumSize(QtCore.QSize(600, 800))
MainWindow.setMaximumSize(QtCore.QSize(600, 800))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.stackedWidget = QtWidgets.QStackedWidget(self.centralwidget)
self.stackedWidget.setGeometry(QtCore.QRect(0, 60, 601, 741))
self.stackedWidget.setObjectName("stackedWidget")
self.pageCreate = QtWidgets.QWidget()
self.pageCreate.setObjectName("pageCreate")
self.Background = QtWidgets.QLabel(self.pageCreate)
self.Background.setGeometry(QtCore.QRect(0, 0, 601, 761))
self.Background.setStyleSheet("background-image: :/image/LogoAndText.png;\n"
"background-repeat: repeat-x;")
self.Background.setText("")
self.Background.setObjectName("Background")
self.create_buttonScan = QtWidgets.QPushButton(self.pageCreate)
self.create_buttonScan.setGeometry(QtCore.QRect(0, 110, 601, 91))
font = QtGui.QFont()
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.create_buttonScan.setFont(font)
self.create_buttonScan.setStyleSheet("QPushButton \n"
" background-color: #1E90FF;\n"
" color: white;\n"
"\n"
"QPushButton:hover \n"
" background-color: #00BFFF;\n"
"")
self.create_buttonScan.setObjectName("")
self.create_nodeUid = QtWidgets.QTextEdit(self.pageCreate)
self.create_nodeUid.setGeometry(QtCore.QRect(0, 200, 601, 91))
self.create_nodeUid.setObjectName("")
self.create_nodeUid.setDisabled(True)
self.create_label_1 = QtWidgets.QPushButton(self.pageCreate)
self.create_label_1.setGeometry(QtCore.QRect(0, 300, 601, 51))
font = QtGui.QFont()
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.create_label_1.setFont(font)
self.create_label_1.setStyleSheet("QPushButton \n"
" background-color: #1E90FF;\n"
" color: white;\n"
"")
self.create_label_1.setObjectName("")
self.create_label_1.setEnabled(False)
self.create_comboBoxCustomer = QtWidgets.QComboBox(self.pageCreate)
self.create_comboBoxCustomer.setGeometry(QtCore.QRect(0, 350, 601, 51))
self.create_comboBoxCustomer.setObjectName("")
self.create_label_2 = QtWidgets.QPushButton(self.pageCreate)
self.create_label_2.setGeometry(QtCore.QRect(0, 410, 601, 51))
font = QtGui.QFont()
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.create_label_2.setFont(font)
self.create_label_2.setStyleSheet("QPushButton \n"
" background-color: #1E90FF;\n"
" color: white;\n"
"")
self.create_label_2.setObjectName("create_label_2")
self.create_label_2.setEnabled(False)
self.create_comboBoxLocation = QtWidgets.QComboBox(self.pageCreate)
self.create_comboBoxLocation.setGeometry(QtCore.QRect(0, 460, 601, 51))
self.create_comboBoxLocation.setObjectName("")
self.create_label_3 = QtWidgets.QPushButton(self.pageCreate)
self.create_label_3.setGeometry(QtCore.QRect(0, 520, 601, 51))
font = QtGui.QFont()
font.setPointSize(20)
font.setBold(True)
font.setWeight(75)
self.create_label_3.setFont(font)
self.create_label_3.setStyleSheet("QPushButton \n"
" background-color: #1E90FF;\n"
" color: white;\n"
"")
self.create_label_3.setObjectName("create_label_3")
self.create_label_3.setEnabled(False)
self.create_comboBoxDirection = QtWidgets.QComboBox(self.pageCreate)
self.create_comboBoxDirection.setGeometry(QtCore.QRect(0, 570, 601, 51))
self.create_comboBoxDirection.setObjectName("")
self.create_buttonSubmit = QtWidgets.QPushButton(self.pageCreate)
self.create_buttonSubmit.setGeometry(QtCore.QRect(150, 650, 300, 71))
font = QtGui.QFont()
font.setPointSize(15)
font.setBold(True)
font.setWeight(75)
self.create_buttonSubmit.setFont(font)
self.create_buttonSubmit.setStyleSheet("QPushButton \n"
" background-color: #34c759;\n"
" border-radius: 20px;\n"
" color: white;\n"
"\n"
"\n"
"QPushButton:hover \n"
" background-color: #30D158;\n"
"")
self.create_buttonSubmit.setObjectName("")
self.stackedWidget.addWidget(self.pageCreate)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "-"))
self.create_buttonScan.setText(_translate("MainWindow", "-"))
self.create_label_1.setText(_translate("MainWindow", ""))
self.create_label_2.setText(_translate("MainWindow", ""))
self.create_label_3.setText(_translate("MainWindow", ""))
self.create_buttonSubmit.setText(_translate("MainWindow", "-"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
【问题讨论】:
你在哪里导入文件?请提供minimal reproducible example。另请注意,您没有翻译为python:您将 UI和QRC转换为 python;翻译是关于口语和本地化的。 在同一个python文件中 @musicamante 添加了更多代码 背景图像值的格式应为url(path)
:background-image: url(:/image/LogoAndText.png);
。
我已将其更改为 = self.Background.setStyleSheet("background-image: url(:/image/LogoAndText.png);\n" "background-repeat: repeat-x;")但它仍然无法正常工作,我收到同样的警告,即导入的 backgroundImage 仍未使用
【参考方案1】:
QRC 文件的转换必须在主脚本中导入,而不是转换后的 UI 文件!谢谢@musicamante!
【讨论】:
以上是关于QT UI 转换为 python,但图像不会加载的主要内容,如果未能解决你的问题,请参考以下文章
Python Qt GUI设计:Python调用UI文件的两种方法(基础篇—3)
在 Windows 机器中将 Qt Designer(.ui) 文件转换为 python(.py) 可执行文件
如何在qt中加载使用QuiLoader加载的ui文件的类文件