Как вывести в консоль текст с кнопок?
Кнопки нажимаются, но когда они нажимаются в консоль должен выводится текст, который на этих кнопках, строки 148-197
.
main.py:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Calculator(object):
def setupUi(self, Calculator):
Calculator.setObjectName("Calculator")
Calculator.setFixedSize(257, 386)
Calculator.setStyleSheet("background-color: rgb(0, 0, 0);")
self.centralwidget = QtWidgets.QWidget(Calculator)
self.centralwidget.setObjectName("centralwidget")
self.Result = QtWidgets.QLabel(self.centralwidget)
self.Result.setGeometry(QtCore.QRect(-3, 0, 257, 61))
self.Result.setStyleSheet("font: 25pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);")
self.Result.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.Result.setObjectName("Result")
self.btn_del = QtWidgets.QPushButton(self.centralwidget)
self.btn_del.setGeometry(QtCore.QRect(0, 65, 65, 65))
self.btn_del.setStyleSheet("font: 18pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_del.setObjectName("btn_del")
self.btn_dot = QtWidgets.QPushButton(self.centralwidget)
self.btn_dot.setGeometry(QtCore.QRect(64, 65, 65, 65))
self.btn_dot.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_dot.setObjectName("btn_dot")
self.btn_proc = QtWidgets.QPushButton(self.centralwidget)
self.btn_proc.setGeometry(QtCore.QRect(128, 65, 65, 65))
self.btn_proc.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_proc.setObjectName("btn_proc")
self.btn_div = QtWidgets.QPushButton(self.centralwidget)
self.btn_div.setGeometry(QtCore.QRect(192, 65, 65, 65))
self.btn_div.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_div.setObjectName("btn_div")
self.btn_7 = QtWidgets.QPushButton(self.centralwidget)
self.btn_7.setGeometry(QtCore.QRect(0, 129, 65, 65))
self.btn_7.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_7.setObjectName("btn_7")
self.btn_8 = QtWidgets.QPushButton(self.centralwidget)
self.btn_8.setGeometry(QtCore.QRect(64, 129, 65, 65))
self.btn_8.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_8.setObjectName("btn_8")
self.btn_9 = QtWidgets.QPushButton(self.centralwidget)
self.btn_9.setGeometry(QtCore.QRect(128, 129, 65, 65))
self.btn_9.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_9.setObjectName("btn_9")
self.btn_mult = QtWidgets.QPushButton(self.centralwidget)
self.btn_mult.setGeometry(QtCore.QRect(192, 129, 65, 65))
self.btn_mult.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_mult.setObjectName("btn_mult")
self.btn_4 = QtWidgets.QPushButton(self.centralwidget)
self.btn_4.setGeometry(QtCore.QRect(0, 193, 65, 65))
self.btn_4.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_4.setObjectName("btn_4")
self.btn_plus = QtWidgets.QPushButton(self.centralwidget)
self.btn_plus.setGeometry(QtCore.QRect(192, 257, 65, 65))
self.btn_plus.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_plus.setObjectName("btn_plus")
self.btn_5 = QtWidgets.QPushButton(self.centralwidget)
self.btn_5.setGeometry(QtCore.QRect(64, 193, 65, 65))
self.btn_5.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_5.setObjectName("btn_5")
self.btn_6 = QtWidgets.QPushButton(self.centralwidget)
self.btn_6.setGeometry(QtCore.QRect(128, 193, 65, 65))
self.btn_6.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_6.setObjectName("btn_6")
self.btn_1 = QtWidgets.QPushButton(self.centralwidget)
self.btn_1.setGeometry(QtCore.QRect(0, 257, 65, 65))
self.btn_1.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"gridline-color: rgb(255, 255, 255);\n"
"color: rgb(255, 255, 255);")
self.btn_1.setObjectName("btn_1")
self.btn_3 = QtWidgets.QPushButton(self.centralwidget)
self.btn_3.setGeometry(QtCore.QRect(128, 257, 65, 65))
self.btn_3.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_3.setObjectName("btn_3")
self.btn_2 = QtWidgets.QPushButton(self.centralwidget)
self.btn_2.setGeometry(QtCore.QRect(64, 257, 65, 65))
self.btn_2.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_2.setObjectName("btn_2")
self.btn_min = QtWidgets.QPushButton(self.centralwidget)
self.btn_min.setGeometry(QtCore.QRect(192, 193, 65, 65))
self.btn_min.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_min.setObjectName("btn_min")
self.btn_zero = QtWidgets.QPushButton(self.centralwidget)
self.btn_zero.setGeometry(QtCore.QRect(64, 321, 65, 65))
self.btn_zero.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_zero.setObjectName("btn_zero")
self.btn_eq = QtWidgets.QPushButton(self.centralwidget)
self.btn_eq.setGeometry(QtCore.QRect(192, 321, 65, 65))
self.btn_eq.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(255, 109, 25);")
self.btn_eq.setObjectName("btn_eq")
self.btn_eq.raise_()
self.Result.raise_()
self.btn_del.raise_()
self.btn_dot.raise_()
self.btn_proc.raise_()
self.btn_div.raise_()
self.btn_7.raise_()
self.btn_8.raise_()
self.btn_9.raise_()
self.btn_mult.raise_()
self.btn_4.raise_()
self.btn_plus.raise_()
self.btn_5.raise_()
self.btn_6.raise_()
self.btn_1.raise_()
self.btn_3.raise_()
self.btn_2.raise_()
self.btn_min.raise_()
self.btn_zero.raise_()
Calculator.setCentralWidget(self.centralwidget)
self.retranslateUi(Calculator)
QtCore.QMetaObject.connectSlotsByName(Calculator)
def retranslateUi(self, Calculator):
_translate = QtCore.QCoreApplication.translate
Calculator.setWindowTitle(_translate("Calculator", "Calculator"))
self.Result.setText(_translate("Calculator", "0"))
self.btn_del.setText(_translate("Calculator", "DEL"))
self.btn_dot.setText(_translate("Calculator", "."))
self.btn_proc.setText(_translate("Calculator", "%"))
self.btn_div.setText(_translate("Calculator", "/"))
self.btn_7.setText(_translate("Calculator", "7"))
self.btn_8.setText(_translate("Calculator", "8"))
self.btn_9.setText(_translate("Calculator", "9"))
self.btn_mult.setText(_translate("Calculator", "x"))
self.btn_4.setText(_translate("Calculator", "4"))
self.btn_plus.setText(_translate("Calculator", "+"))
self.btn_5.setText(_translate("Calculator", "5"))
self.btn_6.setText(_translate("Calculator", "6"))
self.btn_1.setText(_translate("Calculator", "1"))
self.btn_3.setText(_translate("Calculator", "3"))
self.btn_2.setText(_translate("Calculator", "2"))
self.btn_min.setText(_translate("Calculator", "-"))
self.btn_zero.setText(_translate("Calculator", "0"))
self.btn_eq.setText(_translate("Calculator", "="))
def functional(self):
self.btn_zero.clicked.connect(lambda: self.write_number(self.btn_zero.text()))
self.btn_1.clicked.connect(lambda: self.write_number(self.btn_1.text()))
self.btn_2.clicked.connect(lambda: self.write_number(self.btn_2.text()))
self.btn_3.clicked.connect(lambda: self.write_number(self.btn_3.text()))
self.btn_4.clicked.connect(lambda: self.write_number(self.btn_4.text()))
self.btn_5.clicked.connect(lambda: self.write_number(self.btn_5.text()))
self.btn_6.clicked.connect(lambda: self.write_number(self.btn_6.text()))
self.btn_7.clicked.connect(lambda: self.write_number(self.btn_7.text()))
self.btn_8.clicked.connect(lambda: self.write_number(self.btn_8.text()))
self.btn_9.clicked.connect(lambda: self.write_number(self.btn_9.text()))
self.btn_plus.clicked.connect(lambda: self.write_number(self.btn_plus.text()))
self.btn_min.clicked.connect(lambda: self.write_number(self.btn_min.text()))
self.btn_mult.clicked.connect(lambda: self.write_number(self.btn_mult.text()))
self.btn_div.clicked.connect(lambda: self.write_number(self.btn_div.text()))
self.btn_proc.clicked.connect(lambda: self.write_number(self.btn_proc.text()))
def write_number(self, number):
if self.Result.text() == 0:
self.Result.setText(number)
else:
self.Result.setText(self.Result.text() + number)
print(number)
def results(self):
r = eval(self.Result.text())
self.Result.setText(f"Результат: {str(r)}")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Calculator = QtWidgets.QMainWindow()
ui = Ui_Calculator()
ui.setupUi(Calculator)
Calculator.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
- Вы опубликовали код, который демонстрирует проблему - это хорошо и правильно.
- Вы плохо рассказали, что вы хотите сделать и что у вас не получается.
Вы неправильно думаете, что кто-то будет высчитывать строки 148-197 и смотреть на них. Вы должны либо опубликовать полный текст ошибки, которую вы получаете или описать ваши действия, которые не приводят к получению ожидаемого результата.
Например, при нажатии на кнопку7
, ожидаю вывод в консоли цифры7
, но почему-то этого не происходит? - Не происходит это потому что вы заключили привязку сигналов
нажати некоторых кнопок к слотам в метод
functional()
, но нигде его не вызвали.
Если вы удалитеdef functional(self):
или сделаете вызовself.functional()
, то у вас как-то начнет работать ваш калькулятор.
НИКОГДА НЕ ИЗМЕНЯЙТЕ код, сгенерированный Qt Designer, НИКОГДА.
Создайте другой класс, который наследуется от соответствующего виджета, и используйте созданный класс для его заполнения.Некоторые рекмендации и исправление некоторых ошибок прокомментированы по тексту кода.
Вам еще надо серьезно поработать, чтобы калькулятор заработал правильно. Удачи вам.
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Calculator(object):
def setupUi(self, Calculator):
Calculator.setObjectName("Calculator")
Calculator.setFixedSize(257, 386)
Calculator.setStyleSheet("background-color: rgb(0, 0, 0);")
self.centralwidget = QtWidgets.QWidget(Calculator)
self.centralwidget.setObjectName("centralwidget")
self.Result = QtWidgets.QLabel(self.centralwidget)
self.Result.setGeometry(QtCore.QRect(-3, 0, 257, 61))
self.Result.setStyleSheet("font: 25pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);")
self.Result.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignTrailing|QtCore.Qt.AlignVCenter)
self.Result.setObjectName("Result")
self.btn_del = QtWidgets.QPushButton(self.centralwidget)
self.btn_del.setGeometry(QtCore.QRect(0, 65, 65, 65))
self.btn_del.setStyleSheet("font: 18pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_del.setObjectName("btn_del")
self.btn_dot = QtWidgets.QPushButton(self.centralwidget)
self.btn_dot.setGeometry(QtCore.QRect(64, 65, 65, 65))
self.btn_dot.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_dot.setObjectName("btn_dot")
self.btn_proc = QtWidgets.QPushButton(self.centralwidget)
self.btn_proc.setGeometry(QtCore.QRect(128, 65, 65, 65))
self.btn_proc.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_proc.setObjectName("btn_proc")
self.btn_div = QtWidgets.QPushButton(self.centralwidget)
self.btn_div.setGeometry(QtCore.QRect(192, 65, 65, 65))
self.btn_div.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_div.setObjectName("btn_div")
self.btn_7 = QtWidgets.QPushButton(self.centralwidget)
self.btn_7.setGeometry(QtCore.QRect(0, 129, 65, 65))
self.btn_7.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_7.setObjectName("btn_7")
self.btn_8 = QtWidgets.QPushButton(self.centralwidget)
self.btn_8.setGeometry(QtCore.QRect(64, 129, 65, 65))
self.btn_8.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_8.setObjectName("btn_8")
self.btn_9 = QtWidgets.QPushButton(self.centralwidget)
self.btn_9.setGeometry(QtCore.QRect(128, 129, 65, 65))
self.btn_9.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_9.setObjectName("btn_9")
self.btn_mult = QtWidgets.QPushButton(self.centralwidget)
self.btn_mult.setGeometry(QtCore.QRect(192, 129, 65, 65))
self.btn_mult.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_mult.setObjectName("btn_mult")
self.btn_4 = QtWidgets.QPushButton(self.centralwidget)
self.btn_4.setGeometry(QtCore.QRect(0, 193, 65, 65))
self.btn_4.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_4.setObjectName("btn_4")
self.btn_plus = QtWidgets.QPushButton(self.centralwidget)
self.btn_plus.setGeometry(QtCore.QRect(192, 257, 65, 65))
self.btn_plus.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_plus.setObjectName("btn_plus")
self.btn_5 = QtWidgets.QPushButton(self.centralwidget)
self.btn_5.setGeometry(QtCore.QRect(64, 193, 65, 65))
self.btn_5.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_5.setObjectName("btn_5")
self.btn_6 = QtWidgets.QPushButton(self.centralwidget)
self.btn_6.setGeometry(QtCore.QRect(128, 193, 65, 65))
self.btn_6.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_6.setObjectName("btn_6")
self.btn_1 = QtWidgets.QPushButton(self.centralwidget)
self.btn_1.setGeometry(QtCore.QRect(0, 257, 65, 65))
self.btn_1.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"gridline-color: rgb(255, 255, 255);\n"
"color: rgb(255, 255, 255);")
self.btn_1.setObjectName("btn_1")
self.btn_3 = QtWidgets.QPushButton(self.centralwidget)
self.btn_3.setGeometry(QtCore.QRect(128, 257, 65, 65))
self.btn_3.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_3.setObjectName("btn_3")
self.btn_2 = QtWidgets.QPushButton(self.centralwidget)
self.btn_2.setGeometry(QtCore.QRect(64, 257, 65, 65))
self.btn_2.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_2.setObjectName("btn_2")
self.btn_min = QtWidgets.QPushButton(self.centralwidget)
self.btn_min.setGeometry(QtCore.QRect(192, 193, 65, 65))
self.btn_min.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 109, 25);\n"
"background-color: rgb(0, 0, 0);")
self.btn_min.setObjectName("btn_min")
self.btn_zero = QtWidgets.QPushButton(self.centralwidget)
self.btn_zero.setGeometry(QtCore.QRect(64, 321, 65, 65))
self.btn_zero.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(0, 0, 0);")
self.btn_zero.setObjectName("btn_zero")
self.btn_eq = QtWidgets.QPushButton(self.centralwidget)
self.btn_eq.setGeometry(QtCore.QRect(192, 321, 65, 65))
self.btn_eq.setStyleSheet("font: 22pt \"Nirmala UI\";\n"
"color: rgb(255, 255, 255);\n"
"background-color: rgb(255, 109, 25);")
self.btn_eq.setObjectName("btn_eq")
self.btn_eq.raise_()
self.Result.raise_()
self.btn_del.raise_()
self.btn_dot.raise_()
self.btn_proc.raise_()
self.btn_div.raise_()
self.btn_7.raise_()
self.btn_8.raise_()
self.btn_9.raise_()
self.btn_mult.raise_()
self.btn_4.raise_()
self.btn_plus.raise_()
self.btn_5.raise_()
self.btn_6.raise_()
self.btn_1.raise_()
self.btn_3.raise_()
self.btn_2.raise_()
self.btn_min.raise_()
self.btn_zero.raise_()
Calculator.setCentralWidget(self.centralwidget)
self.retranslateUi(Calculator)
QtCore.QMetaObject.connectSlotsByName(Calculator)
def retranslateUi(self, Calculator):
_translate = QtCore.QCoreApplication.translate
Calculator.setWindowTitle(_translate("Calculator", "Calculator"))
self.Result.setText(_translate("Calculator", "0"))
self.btn_del.setText(_translate("Calculator", "DEL"))
self.btn_dot.setText(_translate("Calculator", "."))
self.btn_proc.setText(_translate("Calculator", "%"))
self.btn_div.setText(_translate("Calculator", "/"))
self.btn_7.setText(_translate("Calculator", "7"))
self.btn_8.setText(_translate("Calculator", "8"))
self.btn_9.setText(_translate("Calculator", "9"))
self.btn_mult.setText(_translate("Calculator", "x"))
self.btn_4.setText(_translate("Calculator", "4"))
self.btn_plus.setText(_translate("Calculator", "+"))
self.btn_5.setText(_translate("Calculator", "5"))
self.btn_6.setText(_translate("Calculator", "6"))
self.btn_1.setText(_translate("Calculator", "1"))
self.btn_3.setText(_translate("Calculator", "3"))
self.btn_2.setText(_translate("Calculator", "2"))
self.btn_min.setText(_translate("Calculator", "-"))
self.btn_zero.setText(_translate("Calculator", "0"))
self.btn_eq.setText(_translate("Calculator", "="))
class MainWindow(QtWidgets.QMainWindow, Ui_Calculator):
def __init__(self):
super().__init__()
self.setupUi(self)
# self.btn_zero.clicked.connect(lambda: self.write_number(self.btn_zero.text()))
# Будьте проще -----------------------------------------------> vvv <-----------
self.btn_zero.clicked.connect(lambda: self.write_number("0"))
self.btn_1.clicked.connect(lambda: self.write_number("1"))
self.btn_2.clicked.connect(lambda: self.write_number("2"))
# и так далее ...
self.btn_3.clicked.connect(lambda: self.write_number(self.btn_3.text()))
self.btn_4.clicked.connect(lambda: self.write_number(self.btn_4.text()))
self.btn_5.clicked.connect(lambda: self.write_number(self.btn_5.text()))
self.btn_6.clicked.connect(lambda: self.write_number(self.btn_6.text()))
self.btn_7.clicked.connect(lambda: self.write_number(self.btn_7.text()))
self.btn_8.clicked.connect(lambda: self.write_number(self.btn_8.text()))
self.btn_9.clicked.connect(lambda: self.write_number(self.btn_9.text()))
self.btn_plus.clicked.connect(lambda: self.write_number(self.btn_plus.text()))
self.btn_min.clicked.connect(lambda: self.write_number(self.btn_min.text()))
# self.btn_mult.clicked.connect(lambda: self.write_number(self.btn_mult.text()))
# !!! ---------------------------------------------------------> v <---- !!!
self.btn_mult.clicked.connect(lambda: self.write_number('*'))
self.btn_div.clicked.connect(lambda: self.write_number(self.btn_div.text()))
self.btn_proc.clicked.connect(lambda: self.write_number(self.btn_proc.text()))
# +++
self.btn_eq.clicked.connect(self.results) # +++
def write_number(self, number):
# if self.Result.text() == 0 :
# !!! -------------------------> v^v <---------------------------------- !!!
if self.Result.text() == '0':
self.Result.setText(number)
else:
self.Result.setText(self.Result.text() + number)
print(number)
def results(self):
r = eval(self.Result.text())
self.Result.setText(f"Результат: {str(r)}")
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow() # !!! +++
w.show() # !!! +++
sys.exit(app.exec_())