Python GTK 3只提取文件选择器对话框?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python GTK 3只提取文件选择器对话框?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2462字,纯文字阅读大概需要4分钟。
内容图文
![Python GTK 3只提取文件选择器对话框?](/upload/InfoBanner/zyjiaocheng/734/c23f24d9985b4e2cab2e0786677a25e2.jpg)
我正在尝试创建一个使用Gtk FileChooserDialog对话框的程序.我按照教程here,它的工作原理.但是,我想弹出对话框,而不必处理实际的Gtk窗口.
我已经尝试在教程中使用on_file_clicked()函数中的代码并将其放入__init__函数(并稍微调整一下以使它看起来好像可以工作),然后删除__init__中的代码:
class FileChooserWindow(Gtk.Window):
def __init__(self):
global path
dialog = Gtk.FileChooserDialog("Please choose a file", self,
Gtk.FileChooserAction.OPEN,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
self.add_filters(dialog)
response = dialog.run()
if response == Gtk.ResponseType.OK:
print("Open clicked")
print("File selected: " + dialog.get_filename())
path = dialog.get_filename()
dialog.destroy()
elif response == Gtk.ResponseType.CANCEL:
print("Cancel clicked")
dialog.destroy()
def add_filters(self, dialog):
filter_any = Gtk.FileFilter()
filter_any.set_name("Any files")
filter_any.add_pattern("*")
dialog.add_filter(filter_any)
filter_text = Gtk.FileFilter()
filter_text.set_name('Text files')
filter_text.add_mime_type('text/plain')
dialog.add_filter(filter_text)
filter_py = Gtk.FileFilter()
filter_py.set_name('Python files')
filter_py.add_mime_type('text/x-python')
dialog.add_filter(filter_py)
filter_img = Gtk.FileFilter()
filter_img.set_name('Image')
filter_img.add_mime_type('image/*')
dialog.add_filter(filter_img)
win = FileChooserWindow()
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()
但它只是返回此错误:
Traceback (most recent call last):
File "base.py", line 152, in <module>
win = FileChooserWindow()
File "base.py", line 38, in __init__
Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 175, in new_init
return super_init_func(self, **new_kwargs)
File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 500, in __init__
self._init(*args, **new_kwargs)
File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 175, in new_init
return super_init_func(self, **new_kwargs)
File "/usr/lib/python3/dist-packages/gi/overrides/__init__.py", line 175, in new_init
return super_init_func(self, **new_kwargs)
TypeError: could not convert value for property `transient_for' from FileChooserWindow to GtkWindow
有没有人知道只提取Gtk FileChooserDialog对话框的正确方法?
解决方法:
在第6行声明对话框时:
dialog = Gtk.FileChooserDialog("Please choose a file", self,
self是对话框的父级.要创建没有父级的对话框,请将其设置为None,如下所示:
dialog = Gtk.FileChooserDialog("Please choose a file", None,
内容总结
以上是互联网集市为您收集整理的Python GTK 3只提取文件选择器对话框?全部内容,希望文章能够帮你解决Python GTK 3只提取文件选择器对话框?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。