У меня есть QTableView с QAbstractview только с одним столбцом. Я назначил событие двойного щелчка на QTableView, который вызывает функцию, которая печатает выбранное значение. Странно то, что когда в таблице только одна запись, она работает нормально. Когда записей больше, функция всегда вызывается дважды.
Вот мой код:
class ViewWindow(QWidget):
def __init__(self):
super(ViewWindow, self).__init__()
loader = QUiLoader()
file = QFile(abspath("ui/view.ui"))
file.open(QFile.ReadOnly)
self.view_screen = loader.load(file, self)
file.close()
self.initUI()
def initUI(self):
self.model = QStandardItemModel(parent=self)
self.model.setColumnCount(1)
self.model.setRowCount(len(d))
for i in range(0, len(d)):
self.model.setItem(i, 0, QStandardItem(str(d[i]['file'+str(i+1)])))
self.view_screen.tbl_attachments.setModel(self.model)
self.view_screen.tbl_attachments.setAlternatingRowColors(True)
self.view_screen.tbl_attachments.verticalHeader().setVisible(False)
self.view_screen.tbl_attachments.horizontalHeader().setVisible(False)
self.view_screen.tbl_attachments.setSelectionMode(QAbstractItemView.SingleSelection)
self.view_screen.tbl_attachments.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.view_screen.tbl_attachments.setShowGrid(False)
self.view_screen.tbl_attachments.setFocusPolicy(Qt.NoFocus)
self.view_screen.tbl_attachments.setColumnWidth(0, 680)
self.view_screen.tbl_attachments.doubleClicked.connect(self.open_attachment)
def open_attachment(self):
print (self.view_screen.tbl_attachments.currentIndex().data())
Кто-нибудь знает проблему?
Большое спасибо и наилучшие пожелания
EDIT:
Я кое-что понял: когда я добавляю элементы вручную, это работает. Добавление его из json кажется проблемой. Вот как я это делаю:
urllib.urlcleanup()
f = urllib.urlopen("https://kose.kutschera.co.at/view_attachments_client.php?aussendung_id=22")
s = f.read()
f.close()
d = json.loads(s)
self.model = QStandardItemModel(parent=self)
self.model.setColumnCount(1)
self.model.setRowCount(len(d))
for i in range(0, len(d)):
attach = str(d[i]['file'+str(i+1)])
self.model.setItem(i, 0, QStandardItem(attach))
Есть идеи? - Спасибо