如何在Python中将用户输入从一个脚本传递到另一个脚本?

2024-04-25 02:09:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用PyQt5创建一个GUI应用程序,并且正在努力将从第一个脚本中的QLineEdit检索到的用户输入传递到第二个脚本中。 第一个脚本是一个登录页面,我正在尝试将在行编辑框中输入的用户名传递到主应用程序(这是一个单独的文件),因为它需要在该界面中显示。你知道吗

我对此进行了研究,只遇到了传递固定变量的方法,比如“x=5”(常量),而不是用户输入。如何使用一个在运行时可能发生变化的变量?我已经试过了

from __main__ import *

方法,并尝试使用“str(username)”将username变量转换为字符串,并将该变量设置为全局变量,但似乎仍会出现相同的错误,当调用第二个文件时,该文件崩溃,并且没有显示任何错误。 以下是来自脚本不同区域的相关代码:

文件1.py

import os

global username
username = self.lineEdit_username.text()
username = str(username)
import file2
MainWindow.close() 
os.system('file2.py') 

文件2.py

from __main__ import *
print(username)  # just to check if the variable has been imported

我已经尽可能多地研究了这个问题,然后才发布这篇文章,但如果我错过了一个解决方案,请告诉我在其他地方的正确方向。你知道吗

谢谢你的帮助


Tags: 文件方法用户frompyimport脚本应用程序
1条回答
网友
1楼 · 发布于 2024-04-25 02:09:09

我做这件事最简单的方法,尤其是使用PyQt,就是利用类并将文件作为模块导入。请参见下面的示例。你知道吗

通过_变量.py地址:

import tkinter as tk
class user_input(object):
    def get_input(self):
        def get_text():
            self.entry = user_entry.get()
            print(self.entry)
            root.destroy()

        root = tk.Tk()

        root.title('Name')

        user_entry = tk.Entry(root)
        user_entry.pack()
        user_entry.focus_set()

        okay_button = tk.Button(root,text='okay',command=get_text)
        okay_button.pack(side='bottom')
        root.mainloop()

检索_变量.py地址:

from Pass_variable import user_input

x = user_input()
x.get_input()
print(x.entry)

因此,您基本上是从文件Pass_variable导入类user_input,将x分配给类,然后self下的任何内容现在都存储在x变量中。所以x.entry与在过程中调用self.entry是一样的_变量.py文件。你知道吗

这有道理吗?你知道吗

相关问题 更多 >