QTableWidget + QPushButton Проблема

Я использую PyQt5 и пытаюсь изменить активную ячейку нажатием кнопки. Итак, у меня есть QLineEdit, чтобы люди могли вводить элемент, и кнопка в данный момент принимает это значение и помещает его в позицию 0,0, как и должно. Я попытался, чтобы clicked.connect также изменил переменную, в которой сохранен номер строки, но, похоже, это не работает. Вот мой код для моего btn_clk:

def btn_clk(self):
    row = 0
    col = 0
    entry = QTableWidgetItem(self.mod_num.text())
    self.form_widget.setCurrentCell(row, col)
    self.form_widget.setItem(row, col, entry)
    row += 1
    self.mod_num.clear()

Конечно, для первого элемента у меня есть координата 0,0, я получаю значение, которое находится в поле QLineEdit, я устанавливаю текущую ячейку, затем устанавливаю элемент. Здесь я не знаю, что происходит не так. У меня есть переменная строки + = 1, чтобы переместить ее на одну строку вниз в имеющемся у меня QTableWidget, который я установил как 34 строки.

Я знаю, что сейчас у меня нет возможности остановить это, но меня больше беспокоит то, что в данный момент положение моей камеры не изменится. Любая помощь будет очень признательна.

Обновлять:

Чтобы расширить то, что я хочу:

пример

С помощью предоставленного примера изображения я пытаюсь сделать, когда кто-то вводит что-то в поле QLineEdit и нажимает кнопку «Отправить», метод def btn_clk помещает текст из QLineEdit в ячейку 0,0. Затем, когда пользователь вводит новый элемент в QLineEdit и снова нажимает кнопку «Отправить», он помещает текст из QLineEdit в следующую строку в ячейке 1,0.

Надеюсь, это лучше объясняет, чего я пытаюсь достичь.


person John Ruehs    schedule 24.02.2017    source источник
comment
Вы можете улучшить свое объяснение и привести пример того, что вы хотите.   -  person eyllanesc    schedule 24.02.2017
comment
Я постарался предоставить как можно больше информации. Я действительно не знаю, как лучше это объяснить.   -  person John Ruehs    schedule 24.02.2017


Ответы (1)


Что происходит, так это то, что каждый раз, когда вы вызываете функцию btn_clk, вы сбрасываете значения на row = 0, col = 0.

Что вам нужно сделать, так это инициализировать переменную в __init__:

def __init__(self, other parameters):
    # some code
    self.row = 0
    self.col = 0

А потом в слоте:

def btn_clk(self):
    entry = QTableWidgetItem({your text})
    self.form_widget.setItem(self.row, self.col, entry)
    self.row += 1
    # another some code
person eyllanesc    schedule 24.02.2017
comment
Вот и все! Большое спасибо. - person John Ruehs; 24.02.2017