gpt4 book ai didi

python - 在 Gtk Textview 中打印 bash 命令结果

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

我想使用bash命令打印文件属性并将结果写入Textview。这里通过选择按钮选择路径。文件路径以文本形式存储。os.system("stat"+text+"") 在终端上打印。我想存储此命令的结果。

#/usr/bin/python
import pygtk,gtk,os

class project:
def enter_callback(self,widget,entry):
entry_text=entry.get_text()
print("entry contents: %s \n" % entry_text)

def file_ok_sel(self,w):
print("%s " % self.filew.get_filename())
text=self.filew.get_filename()
print(text)
os.system("stat " + text + "")

def button1_select(self,widget,data=None):
self.filew=gtk.FileSelection("File selection")
self.filew.connect("destroy",self.destroy)
self.filew.ok_button.connect("clicked",self.file_ok_sel)
self.filew.cancel_button.connect("clicked",lambda w:self.filew.destroy())
self.filew.set_filename("penguin.png")
self.filew.show()

def destroy(self,widget):
print("quit")

def __init__(self):
self.window=gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("printing")
self.window.connect("delete_event",lambda a1,a2:gtk.main_quit())
self.window.set_border_width(20)
vbox=gtk.VBox(True,2)
self.window.add(vbox)

label=gtk.Label("Select File")
label.set_alignment(0,0)
vbox.pack_start(label,False,False,0)
label.show()

#adding TEXTVIEW to print bash command result
textview = gtk.TextView()
textbuffer = textview.get_buffer()
self.window.add(textview)

vbox.pack_start(textview,True,True,0)
textview.show()
vbox.show()
self.window.show()

#Button used to select FILE
button=gtk.Button("select")
button.connect("clicked",self.button1_select,"select 1")
vbox.pack_start(button,True,True,2)
button.show()

def main():
gtk.main()
return 0

if __name__=="__main__":
project()
main()

最佳答案

在您的init中添加

self.textbuffer = textview.get_buffer()

然后当您想要更新它时,请执行以下操作:

self.result = os.system("stat"+text+"")
self.textbuffer.set_text(self.result)`

关于python - 在 Gtk Textview 中打印 bash 命令结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26455687/

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