I hope that someone can help me (again). Thanks in advance.
Code:
Select all
from PySide import QtCore, QtGui
from PySide.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt)
from PySide.QtGui import (QApplication, QAbstractSpinBox, QComboBox, QDialog, QPushButton, QDialogButtonBox, QDoubleSpinBox,QLabel, QLineEdit, QSizePolicy, QWidget)
class Ui_MainWindow(object):
def __init__(self, MainWindow):
self.window = MainWindow
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(440, 370)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.btnOK = QPushButton(self.centralwidget)
self.btnOK.setObjectName(u"btnOK")
self.btnOK.setGeometry(QRect(280, 330, 75, 24))
self.btnOK.setDefault(True)
self.btnCancel = QPushButton(self.centralwidget)
self.btnCancel.setObjectName(u"btn_cancel")
self.btnCancel.setGeometry(QRect(356, 330, 75, 24))
self.btnCancel.setDefault(False)
self.btnOK.clicked.connect(self.__btnClicked)
self.btnCancel.clicked.connect(self.__btnClicked)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
def retranslateUi(self, MainWindow):
self.btnCancel.setText(QCoreApplication.translate("MainWindow", u"Cancel", None))
self.btnOK.setText(QCoreApplication.translate("MainWindow", u"OK", None))
# HERE IS THE PROBLEM
def __btnClicked(self):
# How to retrieve the sender or its name respectivly??
obj = self.sender() # 'Ui_MainWindow' object has no attribute 'sender'
obj1 = self.centralwidget() # None
obj2 = self.window() # TypeError: 'PySide2.QtWidgets.QMainWindow' object is not callable
# ...
# print(obj.name()) ???
# print(obj.objectName()) ??
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow(MainWindow)
MainWindow.show()
Code: Select all
from PySide import QtCore, QtGui
from PySide.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, QMetaObject, QObject, QPoint, QRect, QSize, QTime, QUrl, Qt)
from PySide.QtGui import (QApplication, QAbstractSpinBox, QComboBox, QDialog, QPushButton, QDialogButtonBox, QDoubleSpinBox,QLabel, QLineEdit, QSizePolicy, QWidget)
class Ui_MainWindow(object):
def __init__(self, MainWindow):
def triggered(btn):
self.__btnClicked(btn)
self.window = MainWindow
if not MainWindow.objectName():
MainWindow.setObjectName(u"MainWindow")
MainWindow.resize(440, 370)
self.centralwidget = QWidget(MainWindow)
self.centralwidget.setObjectName(u"centralwidget")
self.btnOK = QPushButton(self.centralwidget)
self.btnOK.setObjectName(u"btnOK")
self.btnOK.setGeometry(QRect(280, 330, 75, 24))
self.btnOK.setDefault(True)
self.btnCancel = QPushButton(self.centralwidget)
self.btnCancel.setObjectName(u"btn_cancel")
self.btnCancel.setGeometry(QRect(356, 330, 75, 24))
self.btnCancel.setDefault(False)
self.btnOK.clicked.connect(lambda:triggered(self.btnOK))
self.btnCancel.clicked.connect(lambda:triggered(self.btnCancel))
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
def retranslateUi(self, MainWindow):
self.btnCancel.setText(QCoreApplication.translate("MainWindow", u"Cancel", None))
self.btnOK.setText(QCoreApplication.translate("MainWindow", u"OK", None))
# HERE IS THE PROBLEM
def __btnClicked(self, btn):
# How to retrieve the sender or its name respectivly??
print(f"btn = {btn}")
# obj = self.sender() # 'Ui_MainWindow' object has no attribute 'sender'
# obj1 = self.centralwidget() # None
# obj2 = self.window() # TypeError: 'PySide2.QtWidgets.QMainWindow' object is not callable
# ...
# print(obj.name()) ???
# print(obj.objectName()) ??
MainWindow = QtGui.QMainWindow()
ui = Ui_MainWindow(MainWindow)
MainWindow.show()
Alternatively, have a separate method to handle each button click.