from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QPushButton, QWidget def my_custom_fn(n): print("Button %d was clicked" % n) class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowTitle("My Awesome App") layout = QVBoxLayout() for n in range(10): btn = QPushButton(str(n)) btn.pressed.connect(lambda val=n: my_custom_fn(val)) layout.addWidget(btn) widget = QWidget() widget.setLayout(layout) self.setCentralWidget(widget) if __name__ == '__main__': app = QApplication([]) window = MainWindow() window.show() app.exec_()