如何访问gtk.入口()在我的GUI脚本中从我的其他脚本中删除?Python

2024-10-02 02:34:19 发布

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

我有#1.py脚本,它是一个GTK GUI应用程序,我还有第二个脚本,它需要来自第一个脚本的字符串,可以通过gtk.Entry().get_text()获得

问题是我不知道如何在脚本之外使用这个函数/命令

假设调用了#1脚本测试.py里面有:

def __init__(self):

    #some code

    #some code


    self.TextBox = gtk.Entry()

    self.TextBox .connect("key-press-event", self.keyEnter)

    #some code

    #some code

    #some code

def keyEnter(self, widget, ev):
    if ev.keyval == 65293 and not self.TextBox.get_text() == "":
    self.TextBox1.grab_focus()
    self.TextBox.set_editable(False)`

而#2脚本称为test2.py,其内部包含:

Meta = self.client.get_file_and_metadata(#here it needs to go self.Textbox.get_text())

Tags: andtextpyself脚本gtkgetdef
1条回答
网友
1楼 · 发布于 2024-10-02 02:34:19

我无法从我编写的其他脚本访问gtk.Entry(),因为它是作为一个单独的进程运行的(我还不知道如何操作进程),我这样做了:

def keyEnter(self, widget, ev):
    if ev.keyval == 65293 and not self.TextBox.get_text() == "":
    self.TextBox1.grab_focus()
    self.TextBox.set_editable(False)
    file = open('file.txt', 'w+')
    file.write(self.TextBox.get_text())
    file.close()

我变了

Meta = self.client.get_file_and_metadata(#here it needs to go self.Textbox.get_text())

它应该下载名为self.Textbox的文件

我把它改成了

Meta = self.client.get_file_and_metadata(getpass.getuser())

最后,我上传了来自self.Textbox的字符串

with open("file.txt", "r") as chat:
    data=chat.read().splitlines(True) #split lines in the list
d = str(data[:1]) #take only first line from the list
dat=str(d).strip("[]") #remove the brackets "[]" that remained when string was extracted from the list
with open("file.txt", "w") as chat1:
    chat1.writelines(data[1:]) # writes all except the first line
chat.close()
chat1.close()
self.f = open('file.txt', 'rb')
self.response = self.client.put_file(str(dat[:-2]), self.f)  #str(dat[:-2]) -> i wanted to remove the newline char "\n" 

我不知道是否有人会觉得这有帮助,但这解决了我身边的问题:))

相关问题 更多 >

    热门问题