gpt4 book ai didi

python - 从另一个脚本调用时 PyQt qlineEdit 为空

转载 作者:太空宇宙 更新时间:2023-11-03 17:17:26 24 4
gpt4 key购买 nike

这是我的主脚本,它调用一些生成的 UI 并定义一些函数:

import uifile

from PyQt5 import QtWidgets
import sys

class App(QtWidgets.QMainWindow, uifile.Ui_MyWindow):
def __init__(self):
super(self.__class__, self).__init__()
self.setupUi(self)
self.btn_clickMe.clicked.connect(self.some_function)
return
def some_function(self):
import otherpyscript
def input_user(self):
user = self.lineEdit_username.text()
return user

def main():
app = QtWidgets.QApplication(sys.argv)
form = App()
form.show()
app.exec_()


if __name__ == '__main__':
main()

这是我从主脚本调用函数的另一个脚本:

...
import mainscript

print("The user input from your other script is: " + mainscript.App().input_user())

我试图让 mainscript.App().input_user() 不显示为空(PyQt 的默认值)。

最佳答案

编辑:

再想一想,正确的方法取决于mainscript的使用方式。如果将其用作启动脚本,则最初不会导入它,这会在稍后访问其全局变量时使事情变得复杂。

更好的方法是使用一个非常简单的启动脚本,其中仅包含以下内容:

# mainscript
if __name__ == '__main__':
from mainmodule import main
main()

mainmodule 将如下所示:

# mainmodule
import sys
from PyQt5 import QtWidgets
import uifile

class App(QtWidgets.QMainWindow, uifile.Ui_MyWindow):
def __init__(self):
super().__init__()
self.setupUi(self)
self.btn_clickMe.clicked.connect(self.some_function)
def some_function(self):
import othermodule
othermodule.print_user()
def input_user(self):
user = self.lineEdit_username.text()
return user

form = None

def main_window():
return form

def main():
global form
app = QtWidgets.QApplication(sys.argv)
form = App()
form.show()
app.exec_()

othermodule看起来像这样:

# othermodule
import mainmodule

def print_user():
print("user input: " + mainmodule.main_window().input_user())

关于python - 从另一个脚本调用时 PyQt qlineEdit 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com