0
나는 QTreeView
이고 나는 doubleClicked
신호를 듣습니다. 그런 다음 항목을 두 번 클릭하면 QTabwidget
에 텍스트 파일이 열립니다. 항목의 텍스트를 이미 열어 놓은 경우 녹음 할 수있는 좋은 방법이 있습니까?QTreeView 항목을 두 번 클릭 한 것을 어떻게 기록합니까?
나는 이것을 기록하기 위해 DataFrame
과 같은 것을 만들어야한다고 생각하지만, 이것이 좋은 해결책인지 확실하지 않습니다. 어떤 제안?
class PrjTreeModel(QStandardItemModel):
def __init__(self, parent,data):
super(PrjTreeModel, self).__init__(parent)
self.items = datapd.DataFrame([['HHH','BBB','RRR']],columns=['UserId','ProjectId','Status'])
self.refreshItems()
def refreshItems(self):
prjId = self.items['ProjectId']
child = ['A','B','C']
for i,row in prjId.iteritems():
parent = QtGui.QStandardItem(row)
for j in child:
parent.appendRow(QtGui.QStandardItem(j))
self.appendRow(parent)
def flags(self, index):
if not index.isValid():
return QtCore.Qt.ItemIsEnabled
return QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable
def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
if (role == QtCore.Qt.DisplayRole) and (orientation == QtCore.Qt.Horizontal) and (self.items is not None):
return self.items['UserId'][0]
else:
return QStandardItemModel.headerData(self, section, orientation, role)
class MainWindow(QMainWindow):
[...]
qTreeView.setModel(PrjTreeModel())
qTreeView.doubleClicked.connect(self.dClicked)
self dClicked(self):
[...]
## open txtfile to add in QTabWidget
## when doubled clicked, I don't want to open same item again
## how should I check the state?
당신은 사용자 지정 역할 사용하여 더블 클릭 항목에 플래그를 설정할 수 있습니다
를? – aghilpro
불쌍한 영어에 대해 유감스럽게 생각합니다. 두 번 클릭 한 이벤트를받는 방법을 알고 있지만 qtreeview의 항목을 클릭하면 기록하는 방법을 알고 싶습니다. –
문제 없습니다. 기록으로 무엇을 의미합니까? – aghilpro