Как добавить полосу прокрутки в окно wxpython, вы можете посмотреть две вертикальные сетки

Существует ряд подходов, которые могли бы решить эту проблему. Некоторые из них могут включать расположение курсора, а другие могут попасть в таблицы событий и сигналов. Проблема с использованием QCursor для решения этой проблемы заключается в том, что кто-то запускает кнопку с клавиатурой, а не щелчком мыши, что означает, что позиция курсора может не соответствовать правильной строке.

Поскольку вы уже используете высокий уровень QTableWidget, то здесь это действительно простой способ сделать это:

from functools import partial

class Table(QtGui.QWidget):

    def __init__(self):
        super(Table, self).__init__()

        self.table = QtGui.QTableWidget(3, 2, self)

        for row in xrange(3):
            item = QtGui.QTableWidgetItem("Item %d" % row)
            self.table.setItem(row, 0, item)

            button = QtGui.QPushButton("X", self.table)
            self.table.setCellWidget(row, 1, button)

            button.clicked.connect(partial(self._buttonItemClicked, item))

        layout = QtGui.QHBoxLayout(self)
        layout.addWidget(self.table)

    def _buttonItemClicked(self, item):
        print "Button clicked at row", item.row()

В этом примере мы просто выпекаем элемент первого столбца в вызванный щелчком обратный вызов, поэтому, когда вы щелкните их, у них есть ссылка для запроса номера строки. Этот подход будет отличаться для модели / представления более низкого уровня.

1
задан David 13 July 2018 в 13:29
поделиться