从另一个脚本调用时,PyQt lineEdit 为空

编程入门 行业动态 更新时间:2024-10-22 12:25:37
本文介绍了从另一个脚本调用时,PyQt lineEdit 为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

This is my mainscript which calls some generated UI and defines a few functions:

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()

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

This is the other script where I call the function from mainscript:

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

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

I'm trying to get mainscript.App().input_user() to not show up as empty (the default for PyQt).

推荐答案

编辑:

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

On second thoughts, the right approach depends on how mainscript is used. If it is used as the start-up script, it will not be initially imported, which then complicates things when it comes to accessing its globals later on.

更好的方法是有一个非常简单的启动脚本,其中只包含这个:

A better approach is to have a very simple start-up script that only has this in it:

# 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())

更多推荐

从另一个脚本调用时,PyQt lineEdit 为空

本文发布于:2023-11-13 00:48:40,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1582951.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:为空   脚本   PyQt   lineEdit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!