Как получить base64 из PQt5
НЕ могу создать экземпляр Класса https://gist.github.com/dbovak/cc7d9657940ce4b9b12fbc6db76349d8
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
- Примеры, надо публиковать в тексте вопроса, а не ссылкой.
- Пример должен быть минимально-воспроизводимый [mcve]
- Выбирайте правильные метки, метки [base64] не достаточно.
- НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный
Qt Designer. Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения. - Старайтесь лучше объяснить что вы хотите сделать и что у вас не получается.
Я понял вашу задачу так:
import base64
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui import QPixmap, QImage
#from visit import Ui_MainWindow
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(320, 240)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.photo = QtWidgets.QLabel(self.centralwidget)
self.photo.setGeometry(QtCore.QRect(0, 0, 160, 240))
self.photo.setText("")
self.photo.setPixmap(QtGui.QPixmap("Рапунцель.png"))
self.photo.setObjectName("photo")
self.name = QtWidgets.QLabel(self.centralwidget)
self.name.setGeometry(QtCore.QRect(200, 10, 100, 20))
font = QtGui.QFont()
font.setFamily("Segoe UI Semibold")
font.setPointSize(14)
font.setBold(True)
font.setItalic(True)
font.setWeight(75)
self.name.setFont(font)
self.name.setTextFormat(QtCore.Qt.AutoText)
self.name.setObjectName("name")
self.phone = QtWidgets.QLabel(self.centralwidget)
self.phone.setGeometry(QtCore.QRect(220, 40, 100, 20))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.phone.setFont(font)
self.phone.setObjectName("phone")
self.number = QtWidgets.QLabel(self.centralwidget)
self.number.setGeometry(QtCore.QRect(170, 40, 50, 20))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.number.setFont(font)
self.number.setObjectName("number")
self.adres_str = QtWidgets.QLabel(self.centralwidget)
self.adres_str.setGeometry(QtCore.QRect(170, 55, 50, 20))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(False)
font.setWeight(50)
self.adres_str.setFont(font)
self.adres_str.setObjectName("adres_str")
self.street = QtWidgets.QLabel(self.centralwidget)
self.street.setGeometry(QtCore.QRect(170, 70, 140, 20))
font = QtGui.QFont()
font.setPointSize(10)
font.setBold(True)
font.setWeight(75)
self.street.setFont(font)
self.street.setObjectName("street")
self.description = QtWidgets.QLabel(self.centralwidget)
self.description.setGeometry(QtCore.QRect(170, 90, 140, 120))
self.description.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.description.setObjectName("description")
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow): # ? , my_visit):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.name.setText(_translate("MainWindow", "Rapuncel")) #my_visit['name']
self.phone.setText(_translate("MainWindow", "89287602525")) #my_visit['phone']
self.number.setText(_translate("MainWindow", "number:"))
self.adres_str.setText(_translate("MainWindow", "adres:"))
self.street.setText(_translate("MainWindow", "Pushkin str.50")) #my_visit['address']
self.description.setText(_translate("MainWindow", "Some text descriptin. Must be myne streenged."))
# ? #my_visit['description']
# ? -------- Это стандартная штука, выдоваемая QtDesigner--------------
# ??? vvv
my_visit = {
"name": "Rampion",
"phone": "89287602525",
"address:": "Pushkin str.50",
"description": "Some kind of text description. There should be a lot of lines."
}
# base64 = Ui_MainWindow.base64(my_visit) # <------- Мне нужно это значение
class MainApp(QtWidgets.QMainWindow, Ui_MainWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.label = QtWidgets.QLabel(self)
self.label.move(20, 20)
self.textEdit = QtWidgets.QTextEdit(
'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACZUlEQVRYR8VXS3LTQBDtVsDbcAPMCbB3limkcAKSG4QFdnaYE2BOQLKzxSLJCeAGSUQheSnfwLmB2VJhXmpExpFHI2sk2RWv5FJPv9evP9NieuIfPzE+VSJw8qt3IMDvmahDoDYxt2UAACXMWIIowR5ffn8TJbaBWRE4CXvHAH9RgKXOgQUI48CfXZbZbiTw8Xe/w3d0zkydMkem91IZpyWOJu5sUXS+kEAqt3B+MNOLOuDqDEBLxxFHk7eza5MfIwEJDjhXTYD1s8zinYlEjsCD7FdNI9cJpEq0RFdPR47AMOzLCn69zegz6UgCP+pmfa8RSKudnPNdgCufTOLDxJtdPP7PoA1Cd8HEL5sSUCCD0B0x8bc1f8Bi6sevcgS2VXh6hMOwDz0gsUddNaxWKRjeuKfE/KlJ9Dq4UYH/o/Ns6scj+bgiMAjdayb26xLQwTfVEwg3gRcf6ARq578KuLo7VDc8psCQqwfjr4EfjYvkrAquFJ56UYpdSkAZSmNd1rrg0leOQFELgvA58OJTxVyRaAJORPOpF6UXnFUR5sDiXjs7UqsOMGMRlrWhTkJXpFL3mNrQZhA1lH3F0TiI5FurUQyMpn58VjhkSqQA4Tbw4nSVW6sBU5VXktXSeONlJH3s8jrOVr9RgVSFuNcWfzlh5n3LoKzMAPxxWuiULiQpiR2sZNnCyzIuWUr5Z1Ml0sgdHFZaShVDuR86/0huL3VXtDk/F4e11vKsTHLSCeKx7bYkW80hjLOrV1GhWH0ZrSlyh2MwdZhYfi8oZeYgLBmUiGd8sfVPM6syr2lUSYGaGBuP3QN6rVUwYV/egwAAAABJRU5ErkJggg==',
self
)
self.textEdit.setGeometry(QtCore.QRect(20, 80, 140, 120))
self.button = QtWidgets.QPushButton('Click my', self)
self.button.clicked.connect(self.func_base64)
self.button.move(20, 210)
def func_base64(self):
""" create """
text = self.textEdit.toPlainText()
pixmap = QPixmap(QImage.fromData(base64.b64decode(text)))
self.label.setPixmap(pixmap)
'''
text = self.textEdit.toPlainText()
try:
data = ast.literal_eval(text) # ???
ba = QtCore.QByteArray.fromBase64(data)
pixmap = QtGui.QPixmap()
if pixmap.loadFromData(ba, "PNG"):
self.label.setPixmap(pixmap)
except SyntaxError:
pass
# ? """ Эту штуку надо до ума довести """
'''
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainApp()
w.show()
sys.exit(app.exec_())
