import UnityEngine as unity from PySide2 import QtWidgets class TestUI(QtWidgets.QMainWindow): def __init__(self, parent=None): QtWidgets.QMainWindow.__init__(self, parent) # win self.setWindowTitle("TestQ") # ui part main_widget = QtWidgets.QWidget() self.setCentralWidget(main_widget) main_layout = QtWidgets.QVBoxLayout() main_widget.setLayout(main_layout) test_btn = QtWidgets.QPushButton("List Object") main_layout.addWidget(test_btn) # connection test_btn.clicked.connect(self.list_items) # function def list_items(self): print('hello in python, not shown in unity. - from TestQ') self.u_print('hello in unity. - from TestQ') obj_list = unity.Object.FindObjectsOfType(unity.GameObject) for each_obj in obj_list: self.u_print(each_obj.name) def u_print(self, info): unity.Debug.Log(info) # fix QApplication singleton issue for run python inside some app if not QtWidgets.QApplication.instance(): app = QtWidgets.QApplication([]) else: app = QtWidgets.QApplication.instance() main_ui = TestUI() main_ui.show()