Z
You have made great strides in producing a minimum-reproduced example,
but not perfect. Reproduced when you copy the example and launch it. In my answer to your previous question, I showed you how it looked.Based on the OBD from my response to your previous question,
I'm showing (as an option) how to remove the image in the table cell.And some advice to you:No change in the code generated by Qt Designer,♪ Create another class,
which is inherited from the view and use the class created to fill it.fixed geometry, it's not very good,
instead use the company manager. https://doc.qt.io/qt-5/layout.html ♪
which can also be easily created in Designer https://doc.qt.io/qt-5/designer-layouts.html ♪import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import QHeaderView
from PyQt5.QtGui import QPixmap
import sqlite3
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(723, 584) # 384
Form.setMinimumSize(QtCore.QSize(723, 384))
Form.setMaximumSize(QtCore.QSize(723, 384))
self.tabWidget = QtWidgets.QTabWidget(Form)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 731, 591)) # 391
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.tableWidget = QtWidgets.QTableWidget(self.tab)
self.tableWidget.setGeometry(QtCore.QRect(10, 150, 701, 311)) # 111
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(10)
self.tableWidget.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(4, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(5, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(6, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(7, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(8, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(9, item)
self.plainTextEdit = QtWidgets.QPlainTextEdit(self.tab)
self.plainTextEdit.setGeometry(QtCore.QRect(10, 470, 701, 81)) # (10, 270, 701, 81)
self.plainTextEdit.setBackgroundVisible(False)
self.plainTextEdit.setCenterOnScroll(False)
self.plainTextEdit.setObjectName("plainTextEdit")
self.label = QtWidgets.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(490, -10, 221, 151))
self.label.setStyleSheet("")
self.label.setObjectName("label")
self.label_5 = QtWidgets.QLabel(self.tab)
self.label_5.setGeometry(QtCore.QRect(10, 130, 71, 16))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.tab)
self.label_6.setGeometry(QtCore.QRect(10, 10, 81, 16))
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.tab)
self.label_7.setGeometry(QtCore.QRect(10, 30, 121, 16))
self.label_7.setObjectName("label_7")
self.label_8 = QtWidgets.QLabel(self.tab)
self.label_8.setGeometry(QtCore.QRect(10, 50, 161, 16))
self.label_8.setObjectName("label_8")
self.tabWidget.addTab(self.tab, "")
self.retranslateUi(Form)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
self.tableWidget.horizontalHeader().setMinimumSectionSize(0)
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Автомобили"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "Код"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("Form", "Название"))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("Form", "Скорость(км\\ч)"))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("Form", "Разгон(с)"))
item = self.tableWidget.horizontalHeaderItem(4)
item.setText(_translate("Form", "Объем(см3)"))
item = self.tableWidget.horizontalHeaderItem(5)
item.setText(_translate("Form", "Мощность"))
item = self.tableWidget.horizontalHeaderItem(6)
item.setText(_translate("Form", "Расход(л)"))
item = self.tableWidget.horizontalHeaderItem(7)
item.setText(_translate("Form", "Стоимость"))
item = self.tableWidget.horizontalHeaderItem(8)
item.setText(_translate("Form", "Кузов"))
item = self.tableWidget.horizontalHeaderItem(9)
item.setText(_translate("Form", "Трансмиссия"))
self.plainTextEdit.setPlainText(_translate("Form", "Семейство хэтчбеков A3 представляет Audi в C-классе. Довольно широкий выбор бензиновых и дизельных силовых агрегатов мощностью от 102 до 250 л. с., а также наличие различных вариантов оснащения дают потенциальным покупателям больше возможностей для выбора подходящего автомобиля. В начале 2007 года "))
self.label_5.setText(_translate("Form", "Модификация"))
self.label_6.setText(_translate("Form", "Марка: Audi A3"))
self.label_7.setText(_translate("Form", "Модельный год: 2012"))
self.label_8.setText(_translate("Form", "Объем багажника(л): 350-1080"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Form", "Audi A3"))
class Demo(QtWidgets.QWidget, Ui_Form):
def init(self):
super().init()
self.setupUi(self)
self.row_count = 1
self.table_index = 0
sqlite_connection = sqlite3.connect("Autosalon.db")
sqlite_connection = sqlite3.connect("testImage.db") # установить свое
cursor = sqlite_connection.cursor()
sqlite_select_query = """SELECT * FROM Авто WHERE Название LIKE 'Audi A3%'""" # установить свое
sqlite_select_query = """SELECT * FROM imgTable"""
cursor.execute(sqlite_select_query)
records = cursor.fetchall()
print(type(records), records[0][0], records[0][1])
self.tableWidget.verticalHeader().setDefaultSectionSize(100) # +++
for i, row in enumerate(records):
self.tableWidget.setRowCount(self.row_count)
self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(str(row[0])))
self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(str(row[1])))
+++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
label = QtWidgets.QLabel()
pix = QPixmap()
pix.loadFromData(row[2])
_size = QtCore.QSize(200, 100)
label.setPixmap(pix.scaled(_size, QtCore.Qt.KeepAspectRatio))
self.tableWidget.setItem(self.table_index, 2, QtWidgets.QTableWidgetItem(str(row[2])))
self.tableWidget.setCellWidget(i, 2, label)
+++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self.table_index += 1
self.row_count += 1
cursor.close()
sqlite_connection.close()
if name == 'main':
app = QtWidgets.QApplication(sys.argv)
w = Demo()
w.show()
sys.exit(app.exec_())
UpdateWhat you put them in the table is good, but how do you put them in the label?I didn't find your example. HELLOso he puts it on his discretion:import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import QHeaderView
from PyQt5.QtGui import QPixmap
import sqlite3
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(723, 584) # 384
Form.setMinimumSize(QtCore.QSize(723, 384))
Form.setMaximumSize(QtCore.QSize(723, 384))
self.tabWidget = QtWidgets.QTabWidget(Form)
self.tabWidget.setGeometry(QtCore.QRect(0, 0, 731, 591)) # 391
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.tableWidget = QtWidgets.QTableWidget(self.tab)
self.tableWidget.setGeometry(QtCore.QRect(10, 150, 701, 311)) # 111
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(10)
self.tableWidget.setRowCount(0)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(4, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(5, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(6, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(7, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(8, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setHorizontalHeaderItem(9, item)
self.plainTextEdit = QtWidgets.QPlainTextEdit(self.tab)
self.plainTextEdit.setGeometry(QtCore.QRect(10, 470, 701, 81)) # (10, 270, 701, 81)
self.plainTextEdit.setBackgroundVisible(False)
self.plainTextEdit.setCenterOnScroll(False)
self.plainTextEdit.setObjectName("plainTextEdit")
self.label = QtWidgets.QLabel('Htllo World!', self.tab)
self.label.setGeometry(QtCore.QRect(490, -10, 221, 151))
self.label.setGeometry(QtCore.QRect(215, 10, 200, 100)) # +++
self.label.setStyleSheet("background-color: #f3f4ed;") # +++
self.label.setObjectName("label")
self.label_5 = QtWidgets.QLabel(self.tab)
self.label_5.setGeometry(QtCore.QRect(10, 130, 71, 16))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.tab)
self.label_6.setGeometry(QtCore.QRect(10, 10, 81, 16))
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.tab)
self.label_7.setGeometry(QtCore.QRect(10, 30, 121, 16))
self.label_7.setObjectName("label_7")
self.label_8 = QtWidgets.QLabel(self.tab)
self.label_8.setGeometry(QtCore.QRect(10, 50, 161, 16))
self.label_8.setObjectName("label_8")
self.tabWidget.addTab(self.tab, "")
self.retranslateUi(Form)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents)
self.tableWidget.horizontalHeader().setMinimumSectionSize(0)
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Автомобили"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "Код"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("Form", "Название"))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("Form", "Скорость(км\\ч)"))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("Form", "Разгон(с)"))
item = self.tableWidget.horizontalHeaderItem(4)
item.setText(_translate("Form", "Объем(см3)"))
item = self.tableWidget.horizontalHeaderItem(5)
item.setText(_translate("Form", "Мощность"))
item = self.tableWidget.horizontalHeaderItem(6)
item.setText(_translate("Form", "Расход(л)"))
item = self.tableWidget.horizontalHeaderItem(7)
item.setText(_translate("Form", "Стоимость"))
item = self.tableWidget.horizontalHeaderItem(8)
item.setText(_translate("Form", "Кузов"))
item = self.tableWidget.horizontalHeaderItem(9)
item.setText(_translate("Form", "Трансмиссия"))
self.plainTextEdit.setPlainText(_translate("Form", "Семейство хэтчбеков A3 представляет Audi в C-классе. Довольно широкий выбор бензиновых и дизельных силовых агрегатов мощностью от 102 до 250 л. с., а также наличие различных вариантов оснащения дают потенциальным покупателям больше возможностей для выбора подходящего автомобиля. В начале 2007 года "))
self.label_5.setText(_translate("Form", "Модификация"))
self.label_6.setText(_translate("Form", "Марка: Audi A3"))
self.label_7.setText(_translate("Form", "Модельный год: 2012"))
self.label_8.setText(_translate("Form", "Объем багажника(л): 350-1080"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Form", "Audi A3"))
class Demo(QtWidgets.QWidget, Ui_Form):
def init(self):
super().init()
self.setupUi(self)
self.row_count = 1
self.table_index = 0
sqlite_connection = sqlite3.connect("Autosalon.db")
sqlite_connection = sqlite3.connect("testImage.db") # установить свое
cursor = sqlite_connection.cursor()
sqlite_select_query = """SELECT * FROM Авто WHERE Название LIKE 'Audi A3%'""" # установить свое
sqlite_select_query = """SELECT * FROM imgTable"""
cursor.execute(sqlite_select_query)
records = cursor.fetchall()
print(type(records), records[0][0], records[0][1])
self.tableWidget.verticalHeader().setDefaultSectionSize(100) # +++
for i, row in enumerate(records):
self.tableWidget.setRowCount(self.row_count)
self.tableWidget.setItem(i, 0, QtWidgets.QTableWidgetItem(str(row[0])))
self.tableWidget.setItem(i, 1, QtWidgets.QTableWidgetItem(str(row[1])))
+++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
label = QtWidgets.QLabel()
pix = QPixmap()
pix.loadFromData(row[2])
_size = QtCore.QSize(200, 100)
label.setPixmap(pix.scaled(_size, QtCore.Qt.KeepAspectRatio))
self.tableWidget.setItem(self.table_index, 2, QtWidgets.QTableWidgetItem(str(row[2])))
self.tableWidget.setCellWidget(i, 2, label)
+++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
self.table_index += 1
self.row_count += 1
cursor.close()
sqlite_connection.close()
+++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
self.tableWidget.cellClicked.connect(self.row_column_clicked)
def row_column_clicked(self, row, column):
#print(f'clicked: row={row}, column={column}')
widget = self.tableWidget.cellWidget(row, 2)
self.label.setPixmap(widget.pixmap())
+++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if name == 'main':
app = QtWidgets.QApplication(sys.argv)
w = Demo()
w.show()
sys.exit(app.exec_())