Как при нажатии на checkbox переместить запись в другую таблицу?
Всем привет. Я хочу по нажатии на checkbox поменять у записи "Ожидание" на "Выполнено" и, соответственно, переместить эту строчку в другой tablewidget (их всего 4, хранятся в tabbar каждый).
Также, когда это произошло, необходимо обновить эту запись в таблице "Все", где хранятся все записи(см. скриншот 2).
Если идти справа налево: ставим true, вместо "ожидание" заполняется "выполнено" и запись переходит в другую таблицу.
Это основная таблица, в ней запись так же должна сменить своё состояние.
Если же мы снимаем галку, то нужно её переместить обратно в "ожидают"
В основной программе я работаю с БД, поэтому данные заполнены формально через Qt Designer. Сейчас главное понять, как перемещать строки по установке флага и менять в ней поле "Состояние".
Нужно, полагаю, в методе создания чекбоксов с помощью .stateChanged.connect() при true переместить строку с этим чекбоксом в tableWidget_7, а при false в tablewidget_8 (или в tablewidget_9, если задачу отметили выполненной там). Но как определять номера строк и обращаться к отдельному item-у - непонятно...
Код файла интерфейса test.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'C:\Users\user\Desktop\pythonProject\untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.5
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(917, 400)
Form.setStyleSheet("background-color: rgb(45, 45, 45);\n"
"")
self.tabWidget = QtWidgets.QTabWidget(Form)
self.tabWidget.setGeometry(QtCore.QRect(210, 120, 471, 171))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.tableWidget_6 = QtWidgets.QTableWidget(self.tab)
self.tableWidget_6.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_6.setStyleSheet("color: red;\n"
"background-color: rgb(151,63,175);")
self.tableWidget_6.setObjectName("tableWidget_6")
self.tableWidget_6.setColumnCount(4)
self.tableWidget_6.setRowCount(4)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(2, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(2, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(2, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(3, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(3, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(3, 2, item)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.tableWidget_7 = QtWidgets.QTableWidget(self.tab_2)
self.tableWidget_7.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_7.setStyleSheet("color: red;\n"
"background-color: rgb(151,63,175);")
self.tableWidget_7.setObjectName("tableWidget_7")
self.tableWidget_7.setColumnCount(4)
self.tableWidget_7.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setItem(0, 2, item)
self.tabWidget.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.tableWidget_8 = QtWidgets.QTableWidget(self.tab_3)
self.tableWidget_8.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_8.setStyleSheet("color: red;\n"
"background-color: rgb(151,63,175);\n"
"")
self.tableWidget_8.setObjectName("tableWidget_8")
self.tableWidget_8.setColumnCount(4)
self.tableWidget_8.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(1, 2, item)
self.tabWidget.addTab(self.tab_3, "")
self.tab_4 = QtWidgets.QWidget()
self.tab_4.setObjectName("tab_4")
self.tableWidget_9 = QtWidgets.QTableWidget(self.tab_4)
self.tableWidget_9.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_9.setStyleSheet("color: red;\n"
"background-color: rgb(151,63,175);")
self.tableWidget_9.setObjectName("tableWidget_9")
self.tableWidget_9.setColumnCount(4)
self.tableWidget_9.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setItem(0, 2, item)
self.tabWidget.addTab(self.tab_4, "")
self.retranslateUi(Form)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget_6.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.verticalHeaderItem(2)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.verticalHeaderItem(3)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_6.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_6.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_6.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_6.isSortingEnabled()
self.tableWidget_6.setSortingEnabled(False)
item = self.tableWidget_6.item(0, 0)
item.setText(_translate("Form", "zzz"))
item = self.tableWidget_6.item(0, 1)
item.setText(_translate("Form", "02-12-2021"))
item = self.tableWidget_6.item(0, 2)
item.setText(_translate("Form", "Ожидание"))
item = self.tableWidget_6.item(1, 0)
item.setText(_translate("Form", "xxx"))
item = self.tableWidget_6.item(1, 1)
item.setText(_translate("Form", "11-12-2021"))
item = self.tableWidget_6.item(1, 2)
item.setText(_translate("Form", "Ожидание"))
item = self.tableWidget_6.item(2, 0)
item.setText(_translate("Form", "ccc"))
item = self.tableWidget_6.item(2, 1)
item.setText(_translate("Form", "18-11-2021"))
item = self.tableWidget_6.item(2, 2)
item.setText(_translate("Form", "Просрочено"))
item = self.tableWidget_6.item(3, 0)
item.setText(_translate("Form", "vvv"))
item = self.tableWidget_6.item(3, 1)
item.setText(_translate("Form", "22-02-2021"))
item = self.tableWidget_6.item(3, 2)
item.setText(_translate("Form", "Выполнено"))
self.tableWidget_6.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Form", "Все"))
item = self.tableWidget_7.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_7.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_7.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_7.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_7.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_7.isSortingEnabled()
self.tableWidget_7.setSortingEnabled(False)
item = self.tableWidget_7.item(0, 0)
item.setText(_translate("Form", "vvv"))
item = self.tableWidget_7.item(0, 1)
item.setText(_translate("Form", "22-02-2021"))
item = self.tableWidget_7.item(0, 2)
item.setText(_translate("Form", "Выполнено"))
self.tableWidget_7.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Form", "Выполнены"))
item = self.tableWidget_8.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_8.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_8.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_8.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_8.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_8.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_8.isSortingEnabled()
self.tableWidget_8.setSortingEnabled(False)
item = self.tableWidget_8.item(0, 0)
item.setText(_translate("Form", "zzz"))
item = self.tableWidget_8.item(0, 1)
item.setText(_translate("Form", "02-12-2021"))
item = self.tableWidget_8.item(0, 2)
item.setText(_translate("Form", "Ожидание"))
item = self.tableWidget_8.item(1, 0)
item.setText(_translate("Form", "xxx"))
item = self.tableWidget_8.item(1, 1)
item.setText(_translate("Form", "11-12-2021"))
item = self.tableWidget_8.item(1, 2)
item.setText(_translate("Form", "Ожидание"))
self.tableWidget_8.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("Form", "Ожидание"))
item = self.tableWidget_9.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_9.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_9.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_9.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_9.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_9.isSortingEnabled()
self.tableWidget_9.setSortingEnabled(False)
item = self.tableWidget_9.item(0, 0)
item.setText(_translate("Form", "ccc"))
item = self.tableWidget_9.item(0, 1)
item.setText(_translate("Form", "18-11-2021"))
item = self.tableWidget_9.item(0, 2)
item.setText(_translate("Form", "Просрочено"))
self.tableWidget_9.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("Form", "Просрочены"))
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_())
Основной код файла main.py
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
import test
class tabletest(QtWidgets.QMainWindow, test.Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self) # Это нужно для инициализации нашего дизайна
self.filltab(self.tableWidget_6)
self.filltab(self.tableWidget_7)
self.filltab(self.tableWidget_8)
self.filltab(self.tableWidget_9)
def filltab(self, table):
row_count6 = table.rowCount()
print(row_count6)
for row in range(row_count6):
check_box = self.create_checkbox()
table.setCellWidget(row, 3, check_box)
def create_checkbox(self):
Widget = QtWidgets.QWidget()
pCheckBox = QtWidgets.QCheckBox()
pLayout = QtWidgets.QHBoxLayout(Widget)
pLayout.addWidget(pCheckBox)
pLayout.setAlignment(QtCore.Qt.AlignCenter)
pLayout.setContentsMargins(0, 0, 0, 0)
Widget.setLayout(pLayout)
return Widget
def main():
app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication
window = tabletest() # Создаём объект класса TaskManager
window.setWindowIcon(QtGui.QIcon("icon.png"))
window.show() # Показываем окно
app.exec_() # и запускаем приложение
if __name__ == '__main__': # Если мы запускаем файл напрямую, а не импортируем
main() # то запускаем функцию main()
Ответы (1 шт):
Я не буду прописывать логику, которую вы предлагаете, т.к. мне кажется, что данные должны быть в одной таблице, а не в четырех. А в каждой вкладке показывать то, что вам надо.
Но все необходимое для реализации вашей логики я сделал.
Обратите внимание на:
self.tabWidget.currentChanged.connect(...)check_box.stateChanged.connect(...)и другие изменения, которые я сделал.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import *
#import test
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(917, 400)
Form.setStyleSheet("background-color: rgb(45, 45, 45);\n"
"")
self.tabWidget = QtWidgets.QTabWidget(Form)
# self.tabWidget.setGeometry(QtCore.QRect(210, 120, 471, 171))
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.tableWidget_6 = QtWidgets.QTableWidget(self.tab)
# self.tableWidget_6.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_6.setStyleSheet("color: #411F1F;\n"
"background-color: rgb(151,163,175);")
self.tableWidget_6.setObjectName("tableWidget_6")
self.tableWidget_6.setColumnCount(4)
self.tableWidget_6.setRowCount(4)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setVerticalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(2, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(2, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(2, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(3, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(3, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_6.setItem(3, 2, item)
layout = QtWidgets.QVBoxLayout(self.tab)
layout.addWidget(self.tableWidget_6)
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.tableWidget_7 = QtWidgets.QTableWidget(self.tab_2)
self.tableWidget_7.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_7.setStyleSheet("color: red;\n"
"background-color: rgb(151,63,175);")
self.tableWidget_7.setObjectName("tableWidget_7")
self.tableWidget_7.setColumnCount(4)
self.tableWidget_7.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_7.setItem(0, 2, item)
self.tabWidget.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.tableWidget_8 = QtWidgets.QTableWidget(self.tab_3)
self.tableWidget_8.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_8.setStyleSheet("color: red;\n"
"background-color: rgb(151,63,175);\n"
"")
self.tableWidget_8.setObjectName("tableWidget_8")
self.tableWidget_8.setColumnCount(4)
self.tableWidget_8.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_8.setItem(1, 2, item)
self.tabWidget.addTab(self.tab_3, "")
self.tab_4 = QtWidgets.QWidget()
self.tab_4.setObjectName("tab_4")
self.tableWidget_9 = QtWidgets.QTableWidget(self.tab_4)
self.tableWidget_9.setGeometry(QtCore.QRect(0, 0, 471, 151))
self.tableWidget_9.setStyleSheet("color: red;\n"
"background-color: rgb(151,63,175);")
self.tableWidget_9.setObjectName("tableWidget_9")
self.tableWidget_9.setColumnCount(4)
self.tableWidget_9.setRowCount(1)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_9.setItem(0, 2, item)
self.tabWidget.addTab(self.tab_4, "")
self.retranslateUi(Form)
self.tabWidget.setCurrentIndex(0)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget_6.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.verticalHeaderItem(2)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.verticalHeaderItem(3)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_6.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_6.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_6.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_6.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_6.isSortingEnabled()
self.tableWidget_6.setSortingEnabled(False)
item = self.tableWidget_6.item(0, 0)
item.setText(_translate("Form", "zzz"))
item = self.tableWidget_6.item(0, 1)
item.setText(_translate("Form", "02-12-2021"))
item = self.tableWidget_6.item(0, 2)
item.setText(_translate("Form", "Ожидание"))
item = self.tableWidget_6.item(1, 0)
item.setText(_translate("Form", "xxx"))
item = self.tableWidget_6.item(1, 1)
item.setText(_translate("Form", "11-12-2021"))
item = self.tableWidget_6.item(1, 2)
item.setText(_translate("Form", "Ожидание"))
item = self.tableWidget_6.item(2, 0)
item.setText(_translate("Form", "ccc"))
item = self.tableWidget_6.item(2, 1)
item.setText(_translate("Form", "18-11-2021"))
item = self.tableWidget_6.item(2, 2)
item.setText(_translate("Form", "Просрочено"))
item = self.tableWidget_6.item(3, 0)
item.setText(_translate("Form", "vvv"))
item = self.tableWidget_6.item(3, 1)
item.setText(_translate("Form", "22-02-2021"))
item = self.tableWidget_6.item(3, 2)
item.setText(_translate("Form", "Выполнено"))
self.tableWidget_6.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("Form", "Все"))
item = self.tableWidget_7.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_7.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_7.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_7.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_7.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_7.isSortingEnabled()
self.tableWidget_7.setSortingEnabled(False)
item = self.tableWidget_7.item(0, 0)
item.setText(_translate("Form", "vvv"))
item = self.tableWidget_7.item(0, 1)
item.setText(_translate("Form", "22-02-2021"))
item = self.tableWidget_7.item(0, 2)
item.setText(_translate("Form", "Выполнено"))
self.tableWidget_7.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("Form", "Выполнены"))
item = self.tableWidget_8.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_8.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_8.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_8.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_8.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_8.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_8.isSortingEnabled()
self.tableWidget_8.setSortingEnabled(False)
item = self.tableWidget_8.item(0, 0)
item.setText(_translate("Form", "zzz"))
item = self.tableWidget_8.item(0, 1)
item.setText(_translate("Form", "02-12-2021"))
item = self.tableWidget_8.item(0, 2)
item.setText(_translate("Form", "Ожидание"))
item = self.tableWidget_8.item(1, 0)
item.setText(_translate("Form", "xxx"))
item = self.tableWidget_8.item(1, 1)
item.setText(_translate("Form", "11-12-2021"))
item = self.tableWidget_8.item(1, 2)
item.setText(_translate("Form", "Ожидание"))
self.tableWidget_8.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("Form", "Ожидание"))
item = self.tableWidget_9.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row"))
item = self.tableWidget_9.horizontalHeaderItem(0)
item.setText(_translate("Form", "Задача"))
item = self.tableWidget_9.horizontalHeaderItem(1)
item.setText(_translate("Form", "Дата"))
item = self.tableWidget_9.horizontalHeaderItem(2)
item.setText(_translate("Form", "Состояние"))
item = self.tableWidget_9.horizontalHeaderItem(3)
item.setText(_translate("Form", "Статус"))
__sortingEnabled = self.tableWidget_9.isSortingEnabled()
self.tableWidget_9.setSortingEnabled(False)
item = self.tableWidget_9.item(0, 0)
item.setText(_translate("Form", "ccc"))
item = self.tableWidget_9.item(0, 1)
item.setText(_translate("Form", "18-11-2021"))
item = self.tableWidget_9.item(0, 2)
item.setText(_translate("Form", "Просрочено"))
self.tableWidget_9.setSortingEnabled(__sortingEnabled)
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("Form", "Просрочены"))
class CheckBox(QtWidgets.QCheckBox):
def __init__(self):
super().__init__()
#class TableTest(QtWidgets.QMainWindow, test.Ui_Form):
# vvvvvvv <-------------------------------------- !!!
class TableTest(QtWidgets.QWidget, Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self)
layout = QGridLayout(self) # +
layout.addWidget(self.tabWidget) # +
self.filltab(self.tableWidget_6)
self.filltab(self.tableWidget_7)
self.filltab(self.tableWidget_8)
self.filltab(self.tableWidget_9)
# +++
self.tabWidget.currentChanged.connect(self.qtabwidget_currentchanged) # +++
def filltab(self, table):
row_count6 = table.rowCount()
print(f'{table.objectName()} --> {row_count6} запись/и/ей')
for row in range(row_count6):
# check_box = self.create_checkbox()
# vvvvvv vvvvvvvvv <----------- !!!
widget, check_box = self.create_checkbox() # +++
check_box.stateChanged.connect( # +++
lambda state,
tb=table, # vvvvv vv vvv <----------- +++
row=row: self.state_changed(state, tb, row)
)
# table.setCellWidget(row, 3, check_box)
# vvvvvv <----------- !!!
table.setCellWidget(row, 3, widget)
def create_checkbox(self):
widget = QtWidgets.QWidget()
pCheckBox = QtWidgets.QCheckBox()
pLayout = QtWidgets.QHBoxLayout(widget)
pLayout.addWidget(pCheckBox)
pLayout.setAlignment(QtCore.Qt.AlignCenter)
pLayout.setContentsMargins(0, 0, 0, 0)
widget.setLayout(pLayout)
return widget, pCheckBox
# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
def state_changed(self, state, tb, row):
# тут будет какая-то логика
if state:
print(f'On =`{state}`, table=`{tb.objectName()}`, row=`{row}`')
else:
print(f'Off =`{state}`, table=`{tb.objectName()}`, row=`{row}`')
@QtCore.pyqtSlot(int)
def qtabwidget_currentchanged(self, index):
print(f"\n Hовый индекс текущей страницы: {index}")
print(f" : текст метки для вкладки: {self.tabWidget.tabText(index)}")
# тут возможно будет какая-то логика
# +++ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
app.setFont(QtGui.QFont("Times", 12, QtGui.QFont.Bold))
window = TableTest()
window.setWindowIcon(QtGui.QIcon("im.png"))
window.show()
app.exec_()




