用python只调用gtk,实现一个图形界面,可以选择输入的文件,可以在一个GUI下打印输出文件,找到输入文件中所有以X开头的行并输出到输出文件中
时间: 2024-04-03 07:33:14 浏览: 159
Python实现的Linux下CPU 频率管理软件源码,带GUI图形界面实现调整CPU频率
好的,根据您的要求,我可以给您提供以下的代码:
```python
import gtk
class FileChooserApp(gtk.Window):
def __init__(self):
gtk.Window.__init__(self, title="文件选择器")
self.set_border_width(10)
vbox = gtk.VBox(spacing=10)
self.add(vbox)
# 创建文件选择器
file_chooser = gtk.FileChooserButton("选择文件")
file_chooser.connect("file-set", self.on_file_set)
vbox.pack_start(file_chooser, True, True, 0)
# 创建输出文件名输入框
output_filename_label = gtk.Label("输出文件名:")
output_filename_entry = gtk.Entry()
vbox.pack_start(output_filename_label, True, True, 0)
vbox.pack_start(output_filename_entry, True, True, 0)
# 创建开始按钮
start_button = gtk.Button("开始")
start_button.connect("clicked", self.on_start_clicked, output_filename_entry)
vbox.pack_start(start_button, True, True, 0)
# 创建输出框
self.output_label = gtk.Label()
vbox.pack_start(self.output_label, True, True, 0)
def on_file_set(self, widget):
self.selected_filename = widget.get_filename()
def on_start_clicked(self, widget, output_filename_entry):
if not hasattr(self, "selected_filename"):
self.output_label.set_text("请先选择一个文件")
return
output_filename = output_filename_entry.get_text()
if not output_filename:
self.output_label.set_text("请输入输出文件名")
return
# 开始处理文件
with open(self.selected_filename, "r") as input_file, open(output_filename, "w") as output_file:
for line in input_file:
if line.startswith("X"):
output_file.write(line)
self.output_label.set_text("已完成")
win = FileChooserApp()
win.connect("destroy", gtk.main_quit)
win.show_all()
gtk.main()
```
这个代码创建了一个GUI窗口,其中包含了一个文件选择器、一个输出文件名输入框、一个开始按钮和一个标签。当用户选择文件并点击开始按钮后,它会在输出文件中找到所有以X开头的行并输出到输出文件中,并在标签中显示已完成。您可以根据需要进行修改。
阅读全文