Я создал свой файл .ui в Qt Designers. Затем я использую loadUI (), чтобы загрузить его в свое приложение ниже.
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.uic import loadUi
class Life2Coding(QDialog):
def __init__(self):
super(Life2Coding, self).__init__()
loadUi('new.ui', self)
app = QApplication(sys.argv)
widget=Life2Coding()
widget.show()
sys.exit(app.exec_())
Однако, когда я запускаю этот файл, изображения не отображаются, что странно, как в конструкторе Qt, когда я нажимаю на кнопку предварительного просмотра, на самом деле отображаются изображения.
Также на заметку, если это полезно, я использую файл xz.prc для префикса / пути, какQt designer пишет код, ссылающийся на изображения.
Пожалуйста, не могли бы вы предложить способы, с помощью которых я могу получить изображения из шоу new.ui в моем приложении?Также работают все виджеты, включая метки, это просто изображения, которые не отображаются при запуске.
Спасибо Карлу
.ui файл в его родном формате
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1343</width>
<height>965</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>730</x>
<y>740</y>
<width>521</width>
<height>171</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="xz.qrc">:/newPrefix/me.jpg</pixmap>
</property>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>60</x>
<y>530</y>
<width>651</width>
<height>271</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap resource="xz.qrc">:/newPrefix/logo.png</pixmap>
</property>
</widget>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>930</x>
<y>70</y>
<width>331</width>
<height>301</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">image: url(:/newPrefix/logo.png);</string>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>280</x>
<y>180</y>
<width>68</width>
<height>19</height>
</rect>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</widget>
<resources>
<include location="xz.qrc"/>
</resources>
<connections/>
</ui>
xz.prc
<RCC>
<qresource prefix="newPrefix">
<file>logo.png</file>
<file>me.jpg</file>
</qresource>
</RCC>
xz_rc.py Это после того, как он был преобразован из xz.prc
from PyQt5 import QtCore
qt_resource_data = b
qt_version = QtCore.qVersion().split('.')
if qt_version < ['5', '8', '0']:
rcc_version = 1
qt_resource_struct = qt_resource_struct_v1
else:
rcc_version = 2
qt_resource_struct = qt_resource_struct_v2
def qInitResources():
QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
def qCleanupResources():
QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data)
qInitResources()