Написал интерфейс на Qt Designer - файл tt1 - поместил в него код программы. Программа не отображает значение после нажатия кнопки
Написал интерфейс на Qt Designer - файл tt1.py - поместил в него код программы.
Программа не отображает значение после нажатия кнопки, почему?
import sys
from tt1 import *
from PyQt5 import QtCore, QtGui, QtWidgets
class MyWin(QtWidgets.QMainWindow):
def __init__(self, parent=None):
QtWidgets.QWidget.__init__(self, parent)
self.ui=Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.function)
def function(self):
self.ui.label_2.setText("")
x=self.ui.lineEdit.text()
y=x+3
self.ui.label_2.setText(y)
if __name__=='__main__':
app=QtWidgets.QApplication(sys.argv)
myapp=MyWin()
myapp.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Проблема видимо в том, что вы не правильно инициализируете класс MyWin.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from tt1 import Ui_MainWindow # +++ Ui_MainWindow
class MyWin(QtWidgets.QMainWindow):
def __init__(self): # ---, parent=None):
# QtWidgets.QWidget.__init__(self, parent) # ---
super().__init__() # +++
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.ui.pushButton.clicked.connect(self.function)
def function(self):
# ? self.ui.label_2.setText("")
x = self.ui.lineEdit.text()
y = int(x) + 3 # +++ int
self.ui.label_2.setNum(y) # +++ setNum
if __name__=='__main__':
app = QtWidgets.QApplication(sys.argv)
myapp = MyWin()
myapp.show()
sys.exit(app.exec_())