how many instances of "f" are there in:
q: передача объекта при нажатии на виджет пример создал для простоты и понимания, на деле, конечно, передаются не объекты кнопок.
нужно вот что, при нажатии на виджет (в примере это кнопки), объект виджета передавался бы в другой "принимающий" виджет, и он показывал некоторую информацию которая хранилась в объекте (в примере это текст кнопки).
проблема в чём (буду описывать на примере): когда коннектишь кнопки вручную то работает всё как надо - в "принимающем" виджете показывается текст той кнопки, которую нажал.  но кнопок "много", нужен цикл, и тут всё работает не так как ожидалось, при нажатии лююбой кнопки в "принимающем" виджете показывается текст только последней кнопки (которая коннектилась в последней итерации).
в чём может быть проблема?
может есть какие-то другие способы передачи объекта в "принимающий" виджет?  
пример кода:
import sys

from pyside2.qtwidgets import *
from pyside2.qtgui import *
from pyside2.qtcore import *


class main_window(qmainwindow):
    def __init__(self, parent = none):
        super(main_window, self).__init__();

        self.main_wgt = qwidget();
        self.setcentralwidget(self.main_wgt);


        left_grid = qvboxlayout();
        btn = [];
        for i in range(3):
            btn.append(qpushbutton(str(i)));
            left_grid.addwidget(btn[i]);

        right_wgt = right_wgt();

        main_grid = qhboxlayout();
        main_grid.addlayout(left_grid);
        main_grid.addwidget(right_wgt);

        self.main_wgt.setlayout(main_grid);


        # если вручную добавлять всё работает как надо
        # btn[0].clicked.connect(lambda: right_wgt.slot(btn[0]))
        # btn[1].clicked.connect(lambda: right_wgt.slot(btn[1]))
        # btn[2].clicked.connect(lambda: right_wgt.slot(btn[2]))

        # если циклом то передаётся только последнее значение
        for i in range(len(btn)):
            btn[i].clicked.connect(lambda: right_wgt.slot(btn[i]))



class right_wgt(qwidget):
    def __init__(self, parent = none):
        super(right_wgt, self).__init__();

        self.setfixedsize(100, 100);
        self.setstylesheet("background:#ddd");

        self.label = qlabel("default");
        grid = qgridlayout()
        grid.addwidget(self.label);

        self.setlayout(grid);

    def slot(self, item):
        self.label.settext(item.text())
        print(item);





if ( __name__ == "__main__" ):
    app = qapplication(sys.argv);
    window = main_window();
    window.show();
    sys.exit(app.exec_());


a: а если так:
btn[i].clicked.connect(lambda state, idx=i: right_wgt.slot(btn[idx]))


user
I counted 29 "f"s in that text.
assistant