Как выбрать строку QTableView одним щелчком мышиPython

Программы на Python
Ответить
Anonymous
 Как выбрать строку QTableView одним щелчком мыши

Сообщение Anonymous »

При щелчке по одному из QModelIndex QTableView я хочу выбрать всю строку индексов одной и той же строки.

Для этого я подключаю сигнал clicked QTableView к пользовательскому методу viewClicked(), который автоматически получает выбранный QModelIndex:

self.tableview=QTableView()
self.tableview.clicked.connect(self.viewClicked)


Внутри viewClicked(self, clickedIndex) я запрашиваю номер строки clickedIndex, ее модель и общее количество столбцов):< /p>

row=clickedIndex.row()
model=clickedIndex.model()
columnsTotal=model.columnCount(None)


Наконец, чтобы выбрать каждый индекс подряд:

for i in range(columnsTotal): self.tableview.selectRow(row)


Проблема в том, что Qt обрабатывает такое действие заметно медленнее.
Интересно, есть ли более быстрый способ выбрать всю строку индексов, когда нажат один из элементов таблицы:

Изображение


from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class Model(QAbstractTableModel):
def __init__(self, parent=None, *args):
QAbstractTableModel.__init__(self, parent, *args)
self.items = ['Row0_Column0','Row0_Column1','Row0_Column2']

def flags(self, index):
return Qt.ItemIsEnabled | Qt.ItemIsSelectable

def rowCount(self, parent):
return 1
def columnCount(self, parent):
return len(self.items)

def data(self, index, role):
if not index.isValid(): return QVariant()
elif role != Qt.DisplayRole:
return QVariant()

column=index.column()
if column

Подробнее здесь: https://stackoverflow.com/questions/279 ... -one-click
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»