テストされていないが、その後のモデル(にinsertRow、insertColumn)の適切なメソッドを呼び出して、モデル
への参照を保持してみてください。
class Output(object):
def __init__(self):
''' '''
self.tabs = QtGui.QTabWidget()
self.group_box = QtGui.QGroupBox('Example')
def run(self):
form_layout = QtGui.QFormLayout(self.group_box)
self.tabs.addTab(self.__genTable(),"Tab 1")
self.tabs.addTab(self.__genTable(),"Tab 2")
form_layout.addWidget(self.tabs)
return self.group_box
def __genTable(self):
table_view = QtGui.QTableView()
table_view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
table_view.customContextMenuRequested.connect(self.__openMenu)
table_view.setSelectionBehavior(QtGui.QTableView.SelectItems)
table_view.setModel(QtGui.QStandardItemModel(4, 2))
return table_view
def __openMenu(self, position):
menu = QtGui.QMenu()
sub_menu_row = QtGui.QMenu("Row")
menu.addMenu(sub_menu_row)
addRowBelowAction = sub_menu_row.addAction("add Row below")
action = menu.exec_(QtGui.QCursor.pos())
if action == addRowBelowAction:
idx = self.tabs.currentWidget().selectionModel().currentIndex()
for i in range(self.tabs.count()):
model = self.tabs.widget(i).selectionModel()
model.insertRow(idx.row(), QtCore.QModelIndex())
は、残念ながら、私は次のエラーを取得します。
これらの方法の効果は、この図から明らかです。 例えば:私の場合は
table_view = QtGui.QTableView()
table_view.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
table_view.setSelectionBehavior(QtGui.QTableView.SelectItems)
model = QtGui.QStandardItemModel(4, 2)
table_view.setModel(model)
model.insertRow(2, QtCore.QModelIndex())
私はモデルを行うことができない= QtGui.QStandardItemModelは(4、2)、というし、私はtable_viewから何とかモデルを取得する必要があります。あなたはそれをする方法を知っていますか? – Eagle
おそらく、 'selectionModel()'ではなく 'model()'を得たいでしょう。例えば。 'myTableView.model()' – dave