Ошибка 'Ui_Form' object has no attribute 'BeginResetModel'
Заменил Таблицу в Qt Designer на QLabel
, прописал все и заменил со старого кода, метод reset()
начал выводить ошибку.
...
def insert_varible_into_table(Inventory, Serial, Model, Owner, Location): #добавление данных в SQLite
sqlite_insert_with_param = """INSERT INTO DeviceList
(Inv, Serial, Model, Owner, Location)
VALUES (?, ?, ?, ?, ?);"""
data_tuple = (Inventory, Serial, Model, Owner, Location)
cursor.execute(sqlite_insert_with_param, data_tuple)
sqlite_connection.commit()
print("Переменные Python успешно вставлены в таблицу DeviceList")
def LoadDeviseList():
cursor.execute("SELECT * FROM DeviceList")
data = cursor.fetchall()
return data
cursor.execute("SELECT * FROM RFID")
RFID_list = cursor.fetchall()
DeviceList = LoadDeviseList()
def insert_varible_into_table_RFID(Inventory, RFID): #добавление данных в SQLit
if Inventory in str(RFID_list):
cursor.execute("""DELETE FROM RFID WHERE inv = ?""", Inventory)
sqlite_connection.commit()
sqlite_insert_with_param = """INSERT INTO RFID
(Inv, RFID)
VALUES (?, ?);"""
data_tuple = (Inventory, RFID)
cursor.execute(sqlite_insert_with_param, data_tuple)
sqlite_connection.commit()
print("Переменные Python успешно вставлены в таблицу RFID")
def UpdateDevices():
cursor.execute("DELETE FROM DeviceList")
excel_data_df = pd.read_excel(ExcelList, sheet_name='Page 1')
excel_list = json.loads(excel_data_df.to_json(orient='records'))
for item in excel_list:
if str('DECOMISSIONED') != str(item['Fixed Asset Number']):
insert_varible_into_table(item['Fixed Asset Number'], item['Serial number'], item['Display name'], item['Assigned to'], item['Location'])
print('Ready')
def LoadDeviseList():
cursor.execute("SELECT * FROM DeviceList")
data = cursor.fetchall()
return data
class AddNewDevice(QThread):
def __init__(self, mainwindow, parant=None):
super().__init__()
self.mainwindow = mainwindow
inv = self.mainwindow.lineEdit.text()
rfidnum = (self.mainwindow.RFID_Label.text()).partition(';')[0]
insert_varible_into_table_RFID(inv, rfidnum)
test_rfid = ''
class ProgressBarThread(QThread):
def __init__(self, mainwindow, parant=None):
super().__init__()
self.mainwindow = mainwindow
def run(self):
global test_rfid
current_rfid = ''
while True:
self.mainwindow.pushButton_2.setEnabled(False)
with open(textbase) as file:
RFID_original = file.readlines()[-1]
RFID = RFID_original.partition(';')[0]
if current_rfid != RFID:
self.mainwindow.RFID_Label.setText(RFID_original)
if RFID in str(RFID_list):
*res1, = filter(lambda x: x[1] == RFID, RFID_list)
res1 = np.array(res1)
self.mainwindow.Device_Label.setText(f"<html><head/><body><p align=\"center\"><span style=\" font-size:20pt; font-weight:600;\">{str(res1[0][0])}</span></p></body></html>")
current_rfid = RFID
for item in DeviceList:
if str(res1[0][0]) == str(item[0]):
self.mainwindow.BeginResetModel()
self.mainwindow.label_5.setText(str(item[0]))
self.mainwindow.label_3.setText(str(item[0]))
self.mainwindow.label_7.setText(str(item[0]))
self.mainwindow.label_10.setText(str(item[0]))
self.mainwindow.label_11.setText(str(item[0]))
self.mainwindow.endResetModel()
else:
test_rfid = RFID
self.mainwindow.pushButton_2.setEnabled(True)
time.sleep(1)
def UpdateList():
n = 0
for i in DeviceList:
self.tableWidget.setRowCount(len(DeviceList))
p = 0
for j in i:
self.tableWidget.setItem(n, p, QtWidgets.QTableWidgetItem(str(j)))
p += 1
n += 1
UpdateList()
self.tableWidget.setSortingEnabled(__sortingEnabled)
self.pushButton_2.setText(_translate("Form", "Добавить"))
self.pushButton_4.setText(_translate("Form", "Обновить данные"))
self.pushButton.clicked.connect(self.launch_progress_bar_filling)
self.pushButton_4.clicked.connect(lambda: (UpdateDevices(), UpdateList()))
#self.pushButton_2.clicked.connect(lambda: insert_varible_into_table_RFID(self.lineEdit.text(), (self.RFID_Label.text()).partition(';')[0]))
self.pushButton_2.clicked.connect(lambda: insert_varible_into_table_RFID(self.lineEdit.text(), test_rfid))
self.ProgressbarThread_instance = ProgressBarThread(mainwindow=self)
def launch_progress_bar_filling(self):
self.pushButton.setEnabled(False)
self.ProgressbarThread_instance.start()
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
cursor.close()
if sqlite_connection:
sqlite_connection.close()
print("Соединение с SQLite закрыто")
После долгих мук, закомментировал строки с reset, приложение начало запускаться, но после запуска перестала работать кнопка для добавления данных с RFID меток
#self.mainwindow.BeginResetModel()
self.mainwindow.label_5.setText(str(item[0]))
self.mainwindow.label_3.setText(str(item[0]))
self.mainwindow.label_7.setText(str(item[0]))
self.mainwindow.label_10.setText(str(item[0]))
self.mainwindow.label_11.setText(str(item[0]))
#self.mainwindow.endResetModel()
Хочу чтобы после каждой новой добавленной метки обновлялись данные в левой таблице. Помогите разобраться с этой проблемой.