如何修复此错误:
回溯(最近一次呼叫最后一次):
运行设置表中第32行的文件“”
AttributeError:“非类型”对象没有属性“objectName”
from PySide2.QtCore import *
from PySide2.QtGui import *
from PySide2.QtWidgets import *
import sys
class mk_preview_UI(QWidget):
def __init__(self):
super(mk_preview_UI,self).__init__()
self.UI()
self.layout()
self.show()
def UI(self):
self.setup_turnTable = QPushButton("Setup turn table")
self.setup_turnTable.setObjectName("run_setup_btn")
def layout(self):
self.main_layout = QVBoxLayout()
self.main_layout.addWidget(self.setup_turnTable)
self.setLayout(self.main_layout)
class run_ui:
def __init__(self):
self.MainWindow = mk_preview_UI()
self.MainWindow.setup_turnTable.clicked.connect(self.run_setup_turn_table)
def run_setup_turn_table(self):
run_button = self.MainWindow.sender()
if run_button.objectName() == "run_setup_btn":
print "run_setup_btn"
if __name__ == "__main__":
app = QApplication(sys.argv)
MainWindow = run_ui()
sys.exit(app.exec_())
注意:似乎是PySide2错误
如果一个QObject发出信号并调用另一个QObject的方法,那么接收方对象的sender()将返回发射器对象。在您的情况下,MainWindow不是接收器,因此sender()不会返回发出信号的对象。一种解决方法是将run\u ui设置为QObject,由于run\u setup\u turn\u table方法属于它,因此sender()将返回该按钮
相关问题 更多 >
编程相关推荐