我有两个 python QT 应用程序 - MainApp 和 Editor。我希望两者都能够独立运行,以便您可以单独运行编辑器,或者您可以从 mainApp 打开编辑器并将其参数传递给编辑器。
动作捕捉代码:
第一个.py
from PyQt5.QtWidgets import QMainWindow, QApplication
from second import Editor
class MainApp(QMainWindow):
def __init__ (self, parent=None):
super(MainApp, self).__init__(parent)
self.myArg = "hello"
Editor(self, self.myArg)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
MainWindow = QMainWindow()
MainApp = MainApp()
sys.exit(app.exec_())
第二个.py
from PyQt5.QtWidgets import QMainWindow
class Editor(QMainWindow):
def __init__ (self, myArg, parent=None):
self.myArg = myArg
super(Editor, self).__init__(parent)
print(self.myArg)
当我尝试将一些数据从 mainApp (first.py) 传递到 second.py 时,出现错误:
TypeError: QMainWindow(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()): argument 1 has unexpected type 'str'
编辑器__init__()
方法接受一个字符串 ( myArg
) 和一个可选的父级,然后给它一个MainApp
( self
) 和一个字符串。在MainApp
不能被转换string
让你拥有TypeError
。
我想你误解self
了方法的参数__init__()
。您不必自己提供,因为 Python 将当前正在初始化的对象提供给方法。只需更改此行即可:
Editor(self.myArg)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句