Вывод изображения из Mysql в QLabel
В окне авторизации данные заполняются пользователем отправляются в БД. После введения данных и нажатия кнопки "Продолжить" генерируется тест содержащий картинки, вопросы и ответы. В БД хранятся изображения, при запросе выводится кодировка, а не изображение, как можно вывести изображение?
Может есть варианты обойтись без добавления изображения в БД, то как добиться генерации теста с выводом картинки и вопроса с ответами?
main.py:
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import (QApplication, QWidget, QPushButton, QLabel, QLineEdit, QGridLayout, QMessageBox)
from titul import Ui_mainWindow
from login import Ui_Login
from test import Ui_Test
from Leksia import Ui_Leksia
import pymysql
import random
from config import host, user, password, db_name
class MainWindow(QtWidgets.QMainWindow, Ui_mainWindow):
def __init__(self):
super(MainWindow, self).__init__()
self.setupUi(self)
self.connection = pymysql.connect(
host=host,
port=3306,
user=user,
password=password,
database=db_name,
cursorclass=pymysql.cursors.DictCursor
)
self.cursor = self.connection.cursor()
self.Button_startTest.clicked.connect(self.openLogin)
self.Button_runLR.clicked.connect(self.openLeksia)
def openLeksia(self):
self.leksia = LeksiaWindow()
self.close()
self.leksia.show()
def openLogin(self):
self.login = LoginWindow(self.connection)
self.close()
self.login.show()
class LeksiaWindow(QtWidgets.QMainWindow, Ui_Leksia):
def __init__(self):
super(LeksiaWindow, self).__init__()
self.setupUi(self)
self.pushButton_2.clicked.connect(self.returnToMain)
def returnToMain(self):
self.close()
w.show()
class TestWindow(QtWidgets.QMainWindow, Ui_Test):
def __init__(self):
super(TestWindow, self).__init__()
self.setupUi(self)
class LoginWindow(QtWidgets.QMainWindow, Ui_Login):
def __init__(self, connection):
super(LoginWindow, self).__init__()
self.setupUi(self)
self.connection = connection
self.cursor = self.connection.cursor()
self.pushButton.clicked.connect(self.check_password)
self.pushButton.clicked.connect(self.testImage)
self.pushButton.clicked.connect(self.testText)
def opentest(self):
self.fio = self.lineEdit_2.text()
self.grupp = self.lineEdit_3.text()
self.cursor.execute(f"INSERT INTO students (ФИО, Номер_группы) VALUES ('{self.fio}', '{self.grupp}')")
self.connection.commit()
self.test = TestWindow()
self.close()
self.test.show()
def check_password(self):
self.fio = self.lineEdit_2.text()
self.grupp = self.lineEdit_3.text()
if not self.fio or not self.grupp:
msg = QMessageBox.information(
self,
'Внимание',
'Введите данные для авторизации.'
)
return
elif self.fio != self.lineEdit_2.text() or self.grupp != self.lineEdit_3.text():
msg = QMessageBox.information(
self,
)
return
self.opentest()
def testText(self):
mas = random.sample(range(1, 9), 2)
a = mas[0]
b = mas[1]
print(a, b)
a1 = "SELECT VoprosImage FROM bddiplom.test WHERE id =" + str(a) + ";"
b1 = "SELECT VoprosImage FROM bddiplom.test WHERE id =" + str(b) + ";"
a11 = "SELECT VoprosText FROM bddiplom.test WHERE id =" + str(a) + ";"
b11 = "SELECT VoprosText FROM bddiplom.test WHERE id =" + str(b) + ";"
mas1 = random.sample(range(1, 5), 4)
k_1 = mas1[0]
l_1 = mas1[1]
m_1 = mas1[2]
n_1 = mas1[3]
print(k_1, l_1, m_1, n_1)
mas2 = random.sample(range(1, 5), 4)
k_2 = mas2[0]
l_2 = mas2[1]
m_2 = mas2[2]
n_2 = mas2[3]
print(k_2, l_2, m_2, n_2)
k1 = "SELECT otv1 FROM bddiplom.test WHERE id =" + str(a) + ";"
l1 = "SELECT otv2 FROM bddiplom.test WHERE id =" + str(a) + ";"
m1 = "SELECT otv3 FROM bddiplom.test WHERE id =" + str(a) + ";"
n1 = "SELECT otv4 FROM bddiplom.test WHERE id =" + str(a) + ";"
k2 = "SELECT otv1 FROM bddiplom.test WHERE id =" + str(b) + ";"
l2 = "SELECT otv2 FROM bddiplom.test WHERE id =" + str(b) + ";"
m2 = "SELECT otv3 FROM bddiplom.test WHERE id =" + str(b) + ";"
n2 = "SELECT otv4 FROM bddiplom.test WHERE id =" + str(b) + ";"
with self.connection.cursor() as cursor:
cursor.execute(a1)
result = cursor.fetchone()
a2 = result['VoprosImage']
self.test.label_2.setText(str(a2))
cursor.execute(b1)
result = cursor.fetchone()
b2 = result['VoprosImage']
self.test.label_4.setText(str(b2))
cursor.execute(a11)
result = cursor.fetchone()
a22 = result['VoprosText']
self.test.textEdit_4.setText(str(a22))
cursor.execute(b11)
result = cursor.fetchone()
b22 = result['VoprosText']
self.test.textEdit_5.setText(str(b22))
self.test.comboBox.addItem(""); self.test.comboBox.addItem(""); self.test.comboBox.addItem(""); self.test.comboBox.addItem("")
self.test.comboBox_2.addItem(""); self.test.comboBox_2.addItem(""); self.test.comboBox_2.addItem(""); self.test.comboBox_2.addItem("")
#Вопрос 1
cursor.execute(k1)
result = cursor.fetchone()
kk1 = result['otv1']
self.test.comboBox.setItemText(k_1, str(kk1))
cursor.execute(l1)
result = cursor.fetchone()
ll1 = result['otv2']
self.test.comboBox.setItemText(l_1, str(ll1))
cursor.execute(m1)
result = cursor.fetchone()
mm1 = result['otv3']
self.test.comboBox.setItemText(m_1, str(mm1))
cursor.execute(n1)
result = cursor.fetchone()
nn1 = result['otv4']
self.test.comboBox.setItemText(n_1, str(nn1))
#Вопрос 2
cursor.execute(k2)
result = cursor.fetchone()
kk2 = result['otv1']
self.test.comboBox_2.setItemText(k_2, str(kk2))
cursor.execute(l2)
result = cursor.fetchone()
ll2 = result['otv2']
self.test.comboBox_2.setItemText(l_2, str(ll2))
cursor.execute(m2)
result = cursor.fetchone()
mm2 = result['otv3']
self.test.comboBox_2.setItemText(m_2, str(mm2))
cursor.execute(n2)
result = cursor.fetchone()
nn2 = result['otv4']
self.test.comboBox_2.setItemText(n_2, str(nn2))
def testImage(self):
mas = random.sample(range(9, 21), 3)
a = mas[0]
b = mas[1]
c = mas[2]
print(a, b, c)
a1 = "SELECT VoprosText FROM bddiplom.test WHERE id =" + str(a) + ";"
b1 = "SELECT VoprosText FROM bddiplom.test WHERE id =" + str(b) + ";"
c1 = "SELECT VoprosText FROM bddiplom.test WHERE id =" + str(c) + ";"
mas1 = random.sample(range(1, 5), 4)
k_1 = mas1[0]
l_1 = mas1[1]
m_1 = mas1[2]
n_1 = mas1[3]
print(k_1, l_1, m_1, n_1)
mas2 = random.sample(range(1, 5), 4)
k_2 = mas2[0]
l_2 = mas2[1]
m_2 = mas2[2]
n_2 = mas2[3]
print(k_2, l_2, m_2, n_2)
mas3 = random.sample(range(1, 5), 4)
k_3 = mas3[0]
l_3 = mas3[1]
m_3 = mas3[2]
n_3 = mas3[3]
print(k_3, l_3, m_3, n_3)
k1 = "SELECT otv1 FROM bddiplom.test WHERE id =" + str(a) + ";"
l1 = "SELECT otv2 FROM bddiplom.test WHERE id =" + str(a) + ";"
m1 = "SELECT otv3 FROM bddiplom.test WHERE id =" + str(a) + ";"
n1 = "SELECT otv4 FROM bddiplom.test WHERE id =" + str(a) + ";"
k2 = "SELECT otv1 FROM bddiplom.test WHERE id =" + str(b) + ";"
l2 = "SELECT otv2 FROM bddiplom.test WHERE id =" + str(b) + ";"
m2 = "SELECT otv3 FROM bddiplom.test WHERE id =" + str(b) + ";"
n2 = "SELECT otv4 FROM bddiplom.test WHERE id =" + str(b) + ";"
k3 = "SELECT otv1 FROM bddiplom.test WHERE id =" + str(c) + ";"
l3 = "SELECT otv2 FROM bddiplom.test WHERE id =" + str(c) + ";"
m3 = "SELECT otv3 FROM bddiplom.test WHERE id =" + str(c) + ";"
n3 = "SELECT otv4 FROM bddiplom.test WHERE id =" + str(c) + ";"
with self.connection.cursor() as cursor:
cursor.execute(a1)
result = cursor.fetchone()
a2 = result['VoprosText']
self.test.textEdit.setText(str(a2))
cursor.execute(b1)
result = cursor.fetchone()
b2 = result['VoprosText']
self.test.textEdit_2.setText(str(b2))
cursor.execute(c1)
result = cursor.fetchone()
c2 = result['VoprosText']
self.test.textEdit_3.setText(str(c2))
self.test.comboBox_3.addItem(""); self.test.comboBox_3.addItem(""); self.test.comboBox_3.addItem(""); self.test.comboBox_3.addItem("")
self.test.comboBox_4.addItem(""); self.test.comboBox_4.addItem(""); self.test.comboBox_4.addItem(""); self.test.comboBox_4.addItem("")
self.test.comboBox_5.addItem(""); self.test.comboBox_5.addItem(""); self.test.comboBox_5.addItem(""); self.test.comboBox_5.addItem("")
#Вопрос 1
cursor.execute(k1)
result = cursor.fetchone()
kk1 = result['otv1']
self.test.comboBox_3.setItemText(k_1, str(kk1))
cursor.execute(l1)
result = cursor.fetchone()
ll1 = result['otv2']
self.test.comboBox_3.setItemText(l_1, str(ll1))
cursor.execute(m1)
result = cursor.fetchone()
mm1 = result['otv3']
self.test.comboBox_3.setItemText(m_1, str(mm1))
cursor.execute(n1)
result = cursor.fetchone()
nn1 = result['otv4']
self.test.comboBox_3.setItemText(n_1, str(nn1))
#Вопрос 2
cursor.execute(k2)
result = cursor.fetchone()
kk2 = result['otv1']
self.test.comboBox_4.setItemText(k_2, str(kk2))
cursor.execute(l2)
result = cursor.fetchone()
ll2 = result['otv2']
self.test.comboBox_4.setItemText(l_2, str(ll2))
cursor.execute(m2)
result = cursor.fetchone()
mm2 = result['otv3']
self.test.comboBox_4.setItemText(m_2, str(mm2))
cursor.execute(n2)
result = cursor.fetchone()
nn2 = result['otv4']
self.test.comboBox_4.setItemText(n_2, str(nn2))
#Вопрос 3
cursor.execute(k3)
result = cursor.fetchone()
kk3 = result['otv1']
self.test.comboBox_5.setItemText(k_3, str(kk3))
cursor.execute(l3)
result = cursor.fetchone()
ll3 = result['otv2']
self.test.comboBox_5.setItemText(l_3, str(ll3))
cursor.execute(m3)
result = cursor.fetchone()
mm3 = result['otv3']
self.test.comboBox_5.setItemText(m_3, str(mm3))
cursor.execute(n3)
result = cursor.fetchone()
nn3 = result['otv4']
self.test.comboBox_5.setItemText(n_3, str(nn3))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
login.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Login(object):
def setupUi(self, Login):
Login.setObjectName("Login")
Login.resize(1100, 800)
Login.setStyleSheet("background-color: rgb(255, 255, 255);")
self.centralwidget = QtWidgets.QWidget(Login)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(280, 120, 581, 41))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
self.label.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label.setFont(font)
self.label.setStyleSheet("background-color: rgb(198, 212, 255);")
self.label.setObjectName("label")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(490, 440, 141, 71))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.pushButton.sizePolicy().hasHeightForWidth())
self.pushButton.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.pushButton.setFont(font)
self.pushButton.setStyleSheet("background-color: rgb(198, 212, 255);")
self.pushButton.setObjectName("pushButton")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(480, 310, 141, 31))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
self.label_3.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setStyleSheet("background-color: rgb(198, 212, 255);")
self.label_3.setObjectName("label_3")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(520, 190, 61, 41))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Maximum, QtWidgets.QSizePolicy.Maximum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
self.label_2.setSizePolicy(sizePolicy)
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label_2.setFont(font)
self.label_2.setStyleSheet("background-color: rgb(198, 212, 255);")
self.label_2.setObjectName("label_2")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(380, 260, 331, 31))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lineEdit_2.sizePolicy().hasHeightForWidth())
self.lineEdit_2.setSizePolicy(sizePolicy)
self.lineEdit_2.setObjectName("lineEdit_2")
self.lineEdit_3 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_3.setGeometry(QtCore.QRect(380, 360, 331, 31))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.lineEdit_3.sizePolicy().hasHeightForWidth())
self.lineEdit_3.setSizePolicy(sizePolicy)
self.lineEdit_3.setObjectName("lineEdit_3")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(-4, -8, 1111, 811))
self.label_4.setAutoFillBackground(False)
self.label_4.setText("")
self.label_4.setPixmap(QtGui.QPixmap("images2.jpg"))
self.label_4.setScaledContents(True)
self.label_4.setObjectName("label_4")
self.label_4.raise_()
self.label.raise_()
self.pushButton.raise_()
self.label_3.raise_()
self.label_2.raise_()
self.lineEdit_2.raise_()
self.lineEdit_3.raise_()
Login.setCentralWidget(self.centralwidget)
self.retranslateUi(Login)
QtCore.QMetaObject.connectSlotsByName(Login)
def retranslateUi(self, Login):
_translate = QtCore.QCoreApplication.translate
Login.setWindowTitle(_translate("Login", "Авторизация"))
self.label.setText(_translate("Login", "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt;\">Для прохождения теста необходимо заполнить ФИО и номер группы</span></p></body></html>"))
self.pushButton.setText(_translate("Login", "Продолжить"))
self.label_3.setText(_translate("Login", "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt;\">Номер группы</span></p></body></html>"))
self.label_2.setText(_translate("Login", "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt;\">ФИО</span></p></body></html>"))
test.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Test(object):
def setupUi(self, Test):
Test.setObjectName("Test")
Test.resize(1100, 800)
Test.setStyleSheet("background-color: rgb(255, 255, 255);")
self.centralwidget = QtWidgets.QWidget(Test)
self.centralwidget.setObjectName("centralwidget")
self.tabWidget = QtWidgets.QTabWidget(self.centralwidget)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 1111, 761))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.label = QtWidgets.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(20, 0, 81, 16))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label.setFont(font)
self.label.setObjectName("label")
self.comboBox = QtWidgets.QComboBox(self.tab)
self.comboBox.setGeometry(QtCore.QRect(10, 310, 621, 22))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.comboBox.setFont(font)
self.comboBox.setObjectName("comboBox")
self.comboBox.addItem("")
self.label_2 = QtWidgets.QLabel(self.tab)
self.label_2.setGeometry(QtCore.QRect(10, 60, 621, 241))
self.label_2.setText("")
self.label_2.setScaledContents(True)
self.label_2.setObjectName("label_2")
self.label_4 = QtWidgets.QLabel(self.tab)
self.label_4.setGeometry(QtCore.QRect(10, 430, 611, 281))
self.label_4.setText("")
self.label_4.setScaledContents(True)
self.label_4.setObjectName("label_4")
self.label_3 = QtWidgets.QLabel(self.tab)
self.label_3.setGeometry(QtCore.QRect(20, 350, 81, 16))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label_3.setFont(font)
self.label_3.setObjectName("label_3")
self.comboBox_2 = QtWidgets.QComboBox(self.tab)
self.comboBox_2.setGeometry(QtCore.QRect(10, 710, 631, 22))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.comboBox_2.setFont(font)
self.comboBox_2.setObjectName("comboBox_2")
self.comboBox_2.addItem("")
self.textEdit_4 = QtWidgets.QTextEdit(self.tab)
self.textEdit_4.setGeometry(QtCore.QRect(10, 20, 1081, 41))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.textEdit_4.setFont(font)
self.textEdit_4.setObjectName("textEdit_4")
self.textEdit_5 = QtWidgets.QTextEdit(self.tab)
self.textEdit_5.setGeometry(QtCore.QRect(10, 380, 1081, 41))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.textEdit_5.setFont(font)
self.textEdit_5.setObjectName("textEdit_5")
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.comboBox_3 = QtWidgets.QComboBox(self.tab_2)
self.comboBox_3.setGeometry(QtCore.QRect(20, 150, 971, 22))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.comboBox_3.setFont(font)
self.comboBox_3.setObjectName("comboBox_3")
self.comboBox_3.addItem("")
self.label_6 = QtWidgets.QLabel(self.tab_2)
self.label_6.setGeometry(QtCore.QRect(20, 10, 81, 16))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label_6.setFont(font)
self.label_6.setObjectName("label_6")
self.comboBox_4 = QtWidgets.QComboBox(self.tab_2)
self.comboBox_4.setGeometry(QtCore.QRect(20, 330, 971, 22))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.comboBox_4.setFont(font)
self.comboBox_4.setObjectName("comboBox_4")
self.comboBox_4.addItem("")
self.label_7 = QtWidgets.QLabel(self.tab_2)
self.label_7.setGeometry(QtCore.QRect(20, 190, 81, 16))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label_7.setFont(font)
self.label_7.setObjectName("label_7")
self.comboBox_5 = QtWidgets.QComboBox(self.tab_2)
self.comboBox_5.setGeometry(QtCore.QRect(20, 530, 971, 22))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.comboBox_5.setFont(font)
self.comboBox_5.setObjectName("comboBox_5")
self.comboBox_5.addItem("")
self.label_8 = QtWidgets.QLabel(self.tab_2)
self.label_8.setGeometry(QtCore.QRect(20, 390, 81, 16))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.label_8.setFont(font)
self.label_8.setObjectName("label_8")
self.textEdit = QtWidgets.QTextEdit(self.tab_2)
self.textEdit.setGeometry(QtCore.QRect(20, 30, 971, 121))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.textEdit.setFont(font)
self.textEdit.setObjectName("textEdit")
self.textEdit_2 = QtWidgets.QTextEdit(self.tab_2)
self.textEdit_2.setGeometry(QtCore.QRect(20, 210, 971, 121))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.textEdit_2.setFont(font)
self.textEdit_2.setObjectName("textEdit_2")
self.textEdit_3 = QtWidgets.QTextEdit(self.tab_2)
self.textEdit_3.setGeometry(QtCore.QRect(20, 410, 971, 121))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.textEdit_3.setFont(font)
self.textEdit_3.setObjectName("textEdit_3")
self.tabWidget.addTab(self.tab_2, "")
self.pushButtonEndTest = QtWidgets.QPushButton(self.centralwidget)
self.pushButtonEndTest.setGeometry(QtCore.QRect(880, 760, 211, 31))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(14)
self.pushButtonEndTest.setFont(font)
self.pushButtonEndTest.setStyleSheet("background-color: rgb(212, 212, 212);")
self.pushButtonEndTest.setObjectName("pushButtonEndTest")
Test.setCentralWidget(self.centralwidget)
self.retranslateUi(Test)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(Test)
def retranslateUi(self, Test):
_translate = QtCore.QCoreApplication.translate
Test.setWindowTitle(_translate("Test", "Тест"))
self.label.setText(_translate("Test", "Вопрос 1"))
self.comboBox.setItemText(0, _translate("Test", "..."))
self.label_3.setText(_translate("Test", "Вопрос 2"))
self.comboBox_2.setItemText(0, _translate("Test", "..."))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Test", "Вопросы с картинкой"))
self.comboBox_3.setItemText(0, _translate("Test", "..."))
self.label_6.setText(_translate("Test", "Вопрос 3"))
self.comboBox_4.setItemText(0, _translate("Test", "..."))
self.label_7.setText(_translate("Test", "Вопрос 4"))
self.comboBox_5.setItemText(0, _translate("Test", "..."))
self.label_8.setText(_translate("Test", "Вопрос 5"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Test", "Текстовые вопросы"))
self.pushButtonEndTest.setText(_translate("Test", "Закончить тест"))
Ответы (1 шт):
- Я не могу проверить ваш пример.
- Вам надо научиться создавать минимально-воспроизводимые примеры, которые демонстрируют только вашу текущую проблему, а не публиковать ваш полный проект, который вы уже не можете разместить в вопросе (я не увидел модуль titul.py).
bool QPixmap::loadFromData(const uchar *data, uint len, const char *format = nullptr, Qt::ImageConversionFlags flags = Qt::AutoColor)
Загружает растровое изображение из len первых байтов заданных двоичных данных. Возвращает true, если растровое изображение было успешно загружено; в противном случае делает растровое изображение недействительным и возвращает false.
Загрузчик пытается прочитать растровое изображение, используя указанный формат. Если формат не указан (это значение по умолчанию), загрузчик проверяет файл на наличие заголовка, чтобы угадать формат файла.
Если данные необходимо изменить, чтобы они соответствовали результату с более низким разрешением (например, преобразование из 32-битного в 8-битное), используйте флаги для управления преобразованием.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
class Demo(QWidget):
def __init__(self):
super().__init__()
# a2 = result['VoprosImage'] # это данные из BLOB
a2 = b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x18\x00\x00\x00\x18\x08\x03\x00\x00\x00\xd7\xa9\xcd\xca\x00\x00\x00]PLTE\x00\x00\x00\x00\xca\xdf\x00\xce\xd8\x00\xc6\xd9\x00\xc8\xd6\x00\xc9\xd8\x00\xca\xd8\x00\xc9\xd6\x00\xc9\xd9\x00\xc8\xd8\x00\xc8\xd8\x00\xc9\xd8\x00\xc8\xd8\x00\xc8\xd7\x00\xc8\xd7\x00\xc8\xd7\x00\xc8\xd8\x1e\xce\xdc?\xd6\xe2F\xd8\xe3J\xd9\xe4M\xd9\xe4R\xdb\xe5\x80\xe4\xeb\x81\xe4\xec\xa7\xed\xf2\xc1\xf1\xf5\xe4\xf9\xfb\xe7\xfa\xfb\xe8\xfa\xfc\xff\xff\xff{k\xa3T\x00\x00\x00\x1etRNS\x00\x18\x1a\x1bJhi\x97\xb3\xd6\xd7\xef\xf0\xf1\xf9\xfb\xfc\xfc\xfc\xfc\xfc\xfc\xfc\xfd\xfd\xfd\xfe\xfe\xfe\xfe\xd4[\xd8`\x00\x00\x00\xbaIDAT(\xcfu\x92\x81\x0e\x83 \x0cD\xebT@\x14eN\'\x1b\x8e\xff\xffLA\xe8\xa81\\H\x08\xf7\xe4\xa8\x05\x80\xa8\x9a\x89N\r\x9d`5PU|\xd4I#\xaf\xb2\xdf\xf4\x9a\xa8o\xd0o\'}\xd1\xd4\xa6\xef\x93\xbfX\xbb$r\xee\xa90\xc7:g1-\x9c\xc3\xf5\x1dh\xee\xeb\xfc\xd7\x93\xa3|m5\xb00\xbf\x0c\xd1;8\x0cD\x98~\x8e\xe8\xcc\x13 q\xc77\x98\x9fu]\x9f\xc1\x91\xa00\xd6\x04`p\xa5J`\x88Qw\xd0\xc5\xc3#\xd8\xf7\x0cD,7\x02c2`\xf9\x07/`|\xe4\x96\\\x00\'M\xdc\xdc\xe6\x07i"\xb6}\xb6\xb3\x1f\xa4\xed\xe5\x8b*_m\xf91\xc4\xe7#\x95\x92\xf9\xf9\x1ckg\x1f\xd4\x9b\xe3\xb0\x8b\x00\x00\x00\x00IEND\xaeB`\x82'
self.label = QLabel()
pix = QPixmap() # !!! +++
rez = pix.loadFromData(a2) # !!! +++
print(f'rez = {rez}\n') #
# self.label.setText(str(a2))
self.label.setPixmap(pix) # !!! +++
vbox = QVBoxLayout(self)
vbox.addWidget(self.label)
if __name__ == '__main__':
app = QApplication(sys.argv)
w = Demo()
w.show()
sys.exit(app.exec_())



