Никак не разберусь со слотами и сигналами.
Концепцию понимаю. Не понимаю как правильно использовать это.
У меня PyQt5, Python3, Ubuntu.
Я с помощью QT Designer нарисовал MainWindow с кнопкой и StatusBat.

Сгенерил код на python и добавил в него метод
msgBtnPushed(self), который должен вызываться при нажатии на кнопку.
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'win_mainwnd_03.ui'
#
# Created by: PyQt5 UI code generator 5.2.1
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(538, 364)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(100, 110, 351, 101))
self.pushButton.setObjectName("pushButton")
MainWindow.setCentralWidget(self.centralwidget)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "Исследуем слоты и коннекты"))
self.pushButton.setText(_translate("MainWindow", "Нажми меня"))
def msgBtnPushed(self):
self.statusbar.showMessage("Ух! Нажали!")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
Теперь я должен определить сигнал и указать слот, который должен этот сигнал обрабатывать.
Как указать сигнал, который будет генериться при нажатии на кнопку
self.pushButton?
Где и как нужно указать слот, который при поступлении сигнала вызовет метод
msgBtnPushed?
И еще один мелкий вопрос. Я использую Ubuntu и преобразую файл формы в код python следующей командой:
pyuic5 -x win_mainwnd_03.ui -o win_mainwnd_03e.py
chmod +x win_mainwnd_03e.py
При этом в коде отсутствует строка определения интерпретатора python.
Я ее добавляю либо руками либо командой
sed -i '1s/^/#!\/usr\/bin\/python3\n/' ./win_mainwnd_03e.py
Почему автоматически не вставляется строка вызова интепретатора?
Может я что то делаю не так?