D
In order to receive prompt and correct answers, you must provide a minimum reproducible app, which includes the formation and filling of tables.There's no need to make any references or even to write, 'bet any 2-3 records, 2 tables.'I've noted the lines you need to work with.Give attention to a copy of the table model Покупки should not
have the same name as a copy of the model for the tables Товаров♪import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
class Ui_Wind(object):
def setupUi(self, Wind):
Wind.setObjectName("Wind")
Wind.resize(948, 700)
font = QtGui.QFont()
font.setFamily("Agency FB")
font.setPointSize(16)
Wind.setFont(font)
Wind.setAcceptDrops(False)
Wind.setStyleSheet("background-color:rgb(255, 217, 179)")
self.listView = QtWidgets.QListView(Wind)
self.listView.setGeometry(QtCore.QRect(-10, 80, 981, 91))
self.listView.setStyleSheet("background-color: rgb(243, 194, 147)")
self.listView.setObjectName("listView")
self.pushButton = QtWidgets.QPushButton(Wind)
self.pushButton.setGeometry(QtCore.QRect(0, 0, 231, 71))
font = QtGui.QFont()
font.setFamily("Script MT Bold")
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.pushButton.setFont(font)
self.pushButton.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton.setWhatsThis("")
self.pushButton.setAccessibleName("")
self.pushButton.setStyleSheet("background-color:\n""")
self.pushButton.setText("Молочная продукция")
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("im.png"), QtGui.QIcon.Disabled, QtGui.QIcon.On)
self.pushButton.setIcon(icon)
self.pushButton.setIconSize(QtCore.QSize(230, 200))
self.pushButton.setObjectName("pushButton")
self.listView_2 = QtWidgets.QListView(Wind)
self.listView_2.setGeometry(QtCore.QRect(50, 170, 191, 811))
self.listView_2.setStyleSheet("background-color: rgb(255, 221, 187)")
self.listView_2.setObjectName("listView_2")
self.pushButton_2 = QtWidgets.QPushButton(Wind)
self.pushButton_2.setGeometry(QtCore.QRect(240, 0, 231, 71))
font = QtGui.QFont()
font.setFamily("Script MT Bold")
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.pushButton_2.setFont(font)
self.pushButton_2.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_2.setWhatsThis("")
self.pushButton_2.setAccessibleName("")
self.pushButton_2.setStyleSheet("background-color:\n""")
self.pushButton_2.setText("Мясная продукция")
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap("мясо2.png"), QtGui.QIcon.Disabled, QtGui.QIcon.On)
self.pushButton_2.setIcon(icon1)
self.pushButton_2.setIconSize(QtCore.QSize(230, 200))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(Wind)
self.pushButton_3.setGeometry(QtCore.QRect(480, 0, 231, 71))
font = QtGui.QFont()
font.setFamily("Script MT Bold")
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.pushButton_3.setFont(font)
self.pushButton_3.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_3.setWhatsThis("")
self.pushButton_3.setAccessibleName("")
self.pushButton_3.setStyleSheet("background-color:\n""")
self.pushButton_3.setText("Хлебобулочные Изделия")
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap("xlewb.png"), QtGui.QIcon.Disabled, QtGui.QIcon.On)
self.pushButton_3.setIcon(icon2)
self.pushButton_3.setIconSize(QtCore.QSize(230, 200))
self.pushButton_3.setObjectName("pushButton_3")
self.pushButton_4 = QtWidgets.QPushButton(Wind)
self.pushButton_4.setGeometry(QtCore.QRect(720, 0, 231, 71))
font = QtGui.QFont()
font.setFamily("Script MT Bold")
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.pushButton_4.setFont(font)
self.pushButton_4.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
self.pushButton_4.setWhatsThis("")
self.pushButton_4.setAccessibleName("")
self.pushButton_4.setStyleSheet("background-color:\n""")
self.pushButton_4.setText("Товары_Для_Дома")
icon3 = QtGui.QIcon()
icon3.addPixmap(QtGui.QPixmap("таврары.png"), QtGui.QIcon.Disabled, QtGui.QIcon.On)
self.pushButton_4.setIcon(icon3)
self.pushButton_4.setIconSize(QtCore.QSize(230, 200))
self.pushButton_4.setObjectName("pushButton_4")
self.listWidget = QtWidgets.QListWidget(Wind)
self.listWidget.setGeometry(QtCore.QRect(90, 190, 321, 421))
self.listWidget.setStyleSheet("background-color: rgb(255, 221, 179)")
self.listWidget.setObjectName("listWidget")
self.listWidget_2 = QtWidgets.QListWidget(Wind)
self.listWidget_2.setGeometry(QtCore.QRect(590, 190, 321, 421))
self.listWidget_2.setStyleSheet("background-color: rgb(255, 221, 179)")
self.listWidget_2.setObjectName("listWidget_2")
self.pushButton_5 = QtWidgets.QPushButton(Wind)
self.pushButton_5.setGeometry(QtCore.QRect(440, 330, 131, 61))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_6 = QtWidgets.QPushButton(Wind)
self.pushButton_6.setGeometry(QtCore.QRect(440, 410, 131, 61))
self.pushButton_6.setObjectName("pushButton_6")
self.pushButton_7 = QtWidgets.QPushButton(Wind)
self.pushButton_7.setGeometry(QtCore.QRect(680, 650, 141, 71))
self.pushButton_7.setObjectName("pushButton_7")
self.pushButton_9 = QtWidgets.QPushButton(Wind)
self.pushButton_9.setGeometry(QtCore.QRect(820, 650, 81, 71))
self.pushButton_9.setText("pushButton_9")
icon4 = QtGui.QIcon()
icon4.addPixmap(QtGui.QPixmap("изображение_2021-04-24_223918-removebg-preview.png"), QtGui.QIcon.Disabled, QtGui.QIcon.On)
self.pushButton_9.setIcon(icon4)
self.pushButton_9.setIconSize(QtCore.QSize(100, 100))
self.pushButton_9.setObjectName("pushButton_9")
self.tableWidget = QtWidgets.QTableView(Wind)
self.tableWidget.setGeometry(QtCore.QRect(100, 200, 301, 401))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget1 = QtWidgets.QTableView(Wind)
self.tableWidget1.setGeometry(QtCore.QRect(600, 200, 301, 401))
self.tableWidget1.setObjectName("tableWidget1")
self.retranslateUi(Wind)
QtCore.QMetaObject.connectSlotsByName(Wind)
def retranslateUi(self, Wind):
_translate = QtCore.QCoreApplication.translate
Wind.setWindowTitle(_translate("Wind", "Пампейка"))
self.pushButton_5.setText(_translate("Wind", "Взять"))
self.pushButton_6.setText(_translate("Wind", "Выгрузить"))
self.pushButton_7.setText(_translate("Wind", "Купить"))
class MainWindow(QtWidgets.QMainWindow, Ui_Wind):
def init(self):
super().init()
self.setupUi(self)
self.tableWidget.horizontalHeader().setStretchLastSection(True)
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.tableWidget1.horizontalHeader().setStretchLastSection(True)
self.tableWidget1.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.pushButton.clicked.connect(self.milk)
self.pushButton_2.clicked.connect(self.mco)
self.pushButton_3.clicked.connect(self.xlebw)
self.pushButton_4.clicked.connect(self.hometov)
self.pushButton_5.clicked.connect(self.add_row)
self.pushButton_6.clicked.connect(self.on_del_record)
''' # ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
self.pushButton.clicked.connect(self.pokypki)
self.pushButton_2.clicked.connect(self.pokypki)
self.pushButton_3.clicked.connect(self.pokypki)
self.pushButton_4.clicked.connect(self.pokypki)
'''
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('Продукты.db')
db.setDatabaseName('products.db')
db.open()
self.pokypki()
def milk(self): # ? ? ? , Ui_Wind):
self.model = QSqlTableModel(self)
self.model.setTable("dairy") # Молочная_продукция
self.model.select()
self.tableWidget.setModel(self.model)
def mco(self): # ? ? ? , Ui_Wind):
self.model = QSqlTableModel(self)
self.model.setTable("meat") # Мясная_продукция
self.model.select()
self.tableWidget.setModel(self.model)
def xlebw(self): # ? ? ? , Ui_Wind):
self.model = QSqlTableModel(self)
self.model.setTable("bakery") # Хлебобулочные_Изделия
self.model.select()
self.tableWidget.setModel(self.model)
def hometov(self): # ? ? ? , Ui_Wind):
self.model = QSqlTableModel(self)
self.model.setTable("household") # Товары_Для_Дома
self.model.select()
self.tableWidget.setModel(self.model)
def pokypki(self): # ? ? ? , Ui_Wind):
-----> vvvvvvvvvvvvvvv <------------------------------------------------------- !!!
self.model_purchases = QSqlTableModel(self)
self.model_purchases.setTable("purchases") # Покупки
self.model_purchases.select()
self.tableWidget1.setModel(self.model_purchases)
def add_row(self):
row = self.tableWidget.currentIndex().row()
if row == -1:
msg = QMessageBox.information(None, 'Внимание', 'Выберите продукт для покупки.')
return
id = self.model.record(row).value(0)
name = self.model.record(row).value(1)
price = self.model.record(row).value(3)
r = self.model_purchases.record()
r.setValue("id", id)
r.setValue("name", name)
r.setValue("price", price)
self.model_purchases.insertRecord(-1, r)
self.model_purchases.select()
'''
self.model.insertRow(self.tableWidget.currentIndex().row())
name = self.model.record(row).value(1)
opisanie = self.model.record(row).value(2)
cena = self.model.record(row).value(3)
self.model.insertRow(self.tableWidget1.currentIndex().row())
self.model.select()
'''
def on_del_record(self):
row = self.tableWidget1.currentIndex().row()
if row == -1:
msg = QMessageBox.information(self, 'Внимание', 'Выберите продукт для выгрузки.')
return
'''
name = self.model.record(row).value(1)
opisanie = self.model.record(row).value(2)
cena = self.model.record(row).value(3)
self.model.removeRow(self.tableWidget1.currentIndex().row())
self.model.select()
'''
self.model_purchases.removeRow(self.tableWidget1.currentIndex().row())
self.model_purchases.select()
if name == "main":
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
Table design crisisCREATE-TABLE-db.pyfrom PyQt5.QtSql import QSqlDatabase, QSqlQuery
db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('products.db')
db.open()
query = QSqlQuery()
query.exec_(""" CREATE TABLE dairy
(id INT(11) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
description VARCHAR(70) NOT NULL,
price FLOAT)""")
query.exec_("INSERT INTO dairy (id, name, description, price) "
"VALUES (2018010401, 'Молоко 1', 'Описание 1', 59.52)")
query.exec_("INSERT INTO dairy (id, name, description, price) "
"VALUES (2018010422, 'Молоко 2', 'Описание 2', 159.2)")
query.exec_("INSERT INTO dairy (id, name, description, price) "
"VALUES (2018010555, 'Молоко 3', 'Описание 3', 75)")
query.exec_("SELECT name, description, price FROM dairy")
while query.next():
stu_name = query.value(0)
stu_description = query.value(1)
stu_price = query.value(2)
print(stu_name, stu_description, stu_price)
query.exec_(""" CREATE TABLE meat
(id INT(11) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
description VARCHAR(70) NOT NULL,
price FLOAT)""")
query.exec_("INSERT INTO meat (id, name, description, price) "
"VALUES (1, 'Мясо 1', 'Описание 1', 159.52)")
query.exec_("INSERT INTO meat (id, name, description, price) "
"VALUES (2, 'Мясо 2', 'Описание 2', 559.2)")
query.exec_("INSERT INTO meat (id, name, description, price) "
"VALUES (3, 'Мясо 3', 'Описание 3', 275)")
query.exec_(""" CREATE TABLE bakery
(id INT(11) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
description VARCHAR(70) NOT NULL,
price FLOAT)""")
query.exec_("INSERT INTO bakery (id, name, description, price) "
"VALUES (1, 'Изделие 1', 'Описание 1', 19.52)")
query.exec_("INSERT INTO bakery (id, name, description, price) "
"VALUES (2, 'Изделие 2', 'Описание 2', 55.2)")
query.exec_("INSERT INTO bakery (id, name, description, price) "
"VALUES (3, 'Изделие 3', 'Описание 3', 25)")
query.exec_(""" CREATE TABLE household
(id INT(11) PRIMARY KEY,
name VARCHAR(30) NOT NULL,
description VARCHAR(70) NOT NULL,
price FLOAT)""")
query.exec_("INSERT INTO household (id, name, description, price) "
"VALUES (1, 'Товар 1', 'Описание 1', 719.52)")
query.exec_("INSERT INTO household (id, name, description, price) "
"VALUES (2, 'Товар 2', 'Описание 2', 554.2)")
query.exec_("INSERT INTO household (id, name, description, price) "
"VALUES (3, 'Товар 3', 'Описание 3', 255)")
query.exec_(""" CREATE TABLE purchases
(id INT(11) NOT NULL,
name VARCHAR(30) NOT NULL,
price FLOAT)""")
db.close()