Вызов контекстного меню правой кнопкой мыши для нескольких QTableWidget
У меня есть несколько таблиц QTableWidget, для каждой из них я хочу задать контекстное меню, которое будет вызываться по правой кнопки мыши.
В принцие уже нашел частное решение: Вызов контекстного меню по нажатию правой кнопки мыши на ячейку QTableWidget , но это реализация только для одной таблицы.
Чтобы не прописывать одно и то же для всех таблиц, попробовал пробежаться по списку существующих таблиц и создавать меню для всех, но застрял на моменте того, как передать переменную table в метод context():
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
import traceback
from test123 import Ui_Form
class Main(QtWidgets.QWidget):
def __init__(self):
super(Main, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
tables = (self.ui.tableWidget, self.ui.tableWidget_2, self.ui.tableWidget_3, self.ui.tableWidget_4)
for table in tables:
table.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
table.customContextMenuRequested.connect(self.context(table)) #Как передать переменную table в context
def context(self, point, table):
menu = QtWidgets.QMenu()
if table.itemAt(point):
edit_question = QtWidgets.QAction('Редактировать вопрос', menu)
edit_question.triggered.connect(lambda: print("Текст в ячейке: " +
table.itemAt(point).text()))
menu.addAction(edit_question)
else:
pass
menu.exec(table.mapToGlobal(point))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
test123.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Main(QtWidgets.QWidget):
def __init__(self):
super().__init__()
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(494, 417)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(Form)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.tableWidget = QtWidgets.QTableWidget(Form)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(4)
self.tableWidget.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(1, item)
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.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget)
self.tableWidget_4 = QtWidgets.QTableWidget(Form)
self.tableWidget_4.setObjectName("tableWidget_4")
self.tableWidget_4.setColumnCount(4)
self.tableWidget_4.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget_4)
self.tableWidget_3 = QtWidgets.QTableWidget(Form)
self.tableWidget_3.setObjectName("tableWidget_3")
self.tableWidget_3.setColumnCount(4)
self.tableWidget_3.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget_3)
self.tableWidget_2 = QtWidgets.QTableWidget(Form)
self.tableWidget_2.setObjectName("tableWidget_2")
self.tableWidget_2.setColumnCount(4)
self.tableWidget_2.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget_2)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget.isSortingEnabled()
self.tableWidget.setSortingEnabled(False)
item = self.tableWidget.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget.setSortingEnabled(__sortingEnabled)
item = self.tableWidget_4.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget_4.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget_4.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget_4.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget_4.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget_4.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget_4.isSortingEnabled()
self.tableWidget_4.setSortingEnabled(False)
item = self.tableWidget_4.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget_4.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget_4.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget_4.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget_4.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget_4.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget_4.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget_4.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget_4.setSortingEnabled(__sortingEnabled)
item = self.tableWidget_3.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget_3.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget_3.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget_3.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget_3.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget_3.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget_3.isSortingEnabled()
self.tableWidget_3.setSortingEnabled(False)
item = self.tableWidget_3.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget_3.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget_3.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget_3.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget_3.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget_3.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget_3.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget_3.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget_3.setSortingEnabled(__sortingEnabled)
item = self.tableWidget_2.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget_2.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget_2.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget_2.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget_2.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget_2.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget_2.isSortingEnabled()
self.tableWidget_2.setSortingEnabled(False)
item = self.tableWidget_2.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget_2.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget_2.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget_2.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget_2.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget_2.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget_2.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget_2.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget_2.setSortingEnabled(__sortingEnabled)
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_())
В дополнение хотелось бы разобраться, откуда берется значение point в методе context из примера по ссылке.
Заранее спасибо!
Ответы (1 шт):
void QWidget::customContextMenuRequested(const QPoint &pos)
Этот сигнал испускается, когда
contextMenuPolicyвиджета имеет значениеQt::CustomContextMenuи пользователь запросил контекстное меню в виджете.
Позицияpos— это позиция события контекстного меню, которое получает виджет. Обычно это координаты виджета.
Исключением из этого правила являетсяQAbstractScrollAreaи его подклассы, которые сопоставляют событие контекстного меню с координатами окна viewport().
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
import traceback
#from test123 import Ui_Form
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(494, 417)
self.verticalLayout_2 = QtWidgets.QVBoxLayout(Form)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.verticalLayout = QtWidgets.QVBoxLayout()
self.verticalLayout.setObjectName("verticalLayout")
self.tableWidget = QtWidgets.QTableWidget(Form)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(4)
self.tableWidget.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setVerticalHeaderItem(1, item)
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.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget)
self.tableWidget_4 = QtWidgets.QTableWidget(Form)
self.tableWidget_4.setObjectName("tableWidget_4")
self.tableWidget_4.setColumnCount(4)
self.tableWidget_4.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_4.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget_4)
self.tableWidget_3 = QtWidgets.QTableWidget(Form)
self.tableWidget_3.setObjectName("tableWidget_3")
self.tableWidget_3.setColumnCount(4)
self.tableWidget_3.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_3.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget_3)
self.tableWidget_2 = QtWidgets.QTableWidget(Form)
self.tableWidget_2.setObjectName("tableWidget_2")
self.tableWidget_2.setColumnCount(4)
self.tableWidget_2.setRowCount(2)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setVerticalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setVerticalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setHorizontalHeaderItem(3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(0, 3, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 2, item)
item = QtWidgets.QTableWidgetItem()
self.tableWidget_2.setItem(1, 3, item)
self.verticalLayout.addWidget(self.tableWidget_2)
self.verticalLayout_2.addLayout(self.verticalLayout)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
item = self.tableWidget.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget.isSortingEnabled()
self.tableWidget.setSortingEnabled(False)
item = self.tableWidget.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget.setSortingEnabled(__sortingEnabled)
item = self.tableWidget_4.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget_4.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget_4.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget_4.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget_4.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget_4.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget_4.isSortingEnabled()
self.tableWidget_4.setSortingEnabled(False)
item = self.tableWidget_4.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget_4.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget_4.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget_4.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget_4.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget_4.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget_4.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget_4.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget_4.setSortingEnabled(__sortingEnabled)
item = self.tableWidget_3.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget_3.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget_3.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget_3.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget_3.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget_3.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget_3.isSortingEnabled()
self.tableWidget_3.setSortingEnabled(False)
item = self.tableWidget_3.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget_3.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget_3.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget_3.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget_3.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget_3.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget_3.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget_3.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget_3.setSortingEnabled(__sortingEnabled)
item = self.tableWidget_2.verticalHeaderItem(0)
item.setText(_translate("Form", "New Row1"))
item = self.tableWidget_2.verticalHeaderItem(1)
item.setText(_translate("Form", "New Row2"))
item = self.tableWidget_2.horizontalHeaderItem(0)
item.setText(_translate("Form", "New Column1"))
item = self.tableWidget_2.horizontalHeaderItem(1)
item.setText(_translate("Form", "New Column2"))
item = self.tableWidget_2.horizontalHeaderItem(2)
item.setText(_translate("Form", "New Column3"))
item = self.tableWidget_2.horizontalHeaderItem(3)
item.setText(_translate("Form", "New Column4"))
__sortingEnabled = self.tableWidget_2.isSortingEnabled()
self.tableWidget_2.setSortingEnabled(False)
item = self.tableWidget_2.item(0, 0)
item.setText(_translate("Form", "1"))
item = self.tableWidget_2.item(0, 1)
item.setText(_translate("Form", "2"))
item = self.tableWidget_2.item(0, 2)
item.setText(_translate("Form", "3"))
item = self.tableWidget_2.item(0, 3)
item.setText(_translate("Form", "4"))
item = self.tableWidget_2.item(1, 0)
item.setText(_translate("Form", "8"))
item = self.tableWidget_2.item(1, 1)
item.setText(_translate("Form", "7"))
item = self.tableWidget_2.item(1, 2)
item.setText(_translate("Form", "6"))
item = self.tableWidget_2.item(1, 3)
item.setText(_translate("Form", "5"))
self.tableWidget_2.setSortingEnabled(__sortingEnabled)
class Main(QtWidgets.QWidget):
def __init__(self):
super(Main, self).__init__()
self.ui = Ui_Form()
self.ui.setupUi(self)
tables = (self.ui.tableWidget, self.ui.tableWidget_2, self.ui.tableWidget_3, self.ui.tableWidget_4)
for table in tables:
table.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
# Как передать переменную table в context
# table.customContextMenuRequested.connect(self.context(table))
table.customContextMenuRequested.connect(
lambda pos, table=table: self.context(pos, table))
def context(self, point, table):
menu = QtWidgets.QMenu()
if table.itemAt(point):
edit_question = QtWidgets.QAction('Редактировать вопрос', menu)
edit_question.triggered.connect(
lambda: print(
f"{table.objectName()} -> Текст в ячейке: {table.itemAt(point).text()}"))
menu.addAction(edit_question)
else:
pass
menu.exec(table.mapToGlobal(point))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
