如何允许在Gtk中单击鼠标.文件选择器对话框



下面是我根据Gtk文档改编的Gtk.FileChooserDialog小部件的简化示例代码。要在这个小部件中选择一个文件或文件夹或激活任何文件或文件夹,目前我必须将鼠标指针放在项目上并双击它。我希望使用鼠标单击来进行选择和激活。我如何为这个小部件设置它?

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
class FileChooserWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="FileChooser Example")
box = Gtk.Box(spacing=6)
self.add(box)
button1 = Gtk.Button("Choose File")
button1.connect("clicked", self.on_file_clicked)
box.add(button1)
def on_file_clicked(self, widget):
dialog = Gtk.FileChooserDialog("Please choose a file", self,
Gtk.FileChooserAction.OPEN,
(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
Gtk.STOCK_OPEN, Gtk.ResponseType.OK))
response = dialog.run()
if response == Gtk.ResponseType.OK:
print("Open clicked")
print("File selected: " + dialog.get_filename())
elif response == Gtk.ResponseType.CANCEL:
print("Cancel clicked")
dialog.destroy()

win = FileChooserWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()

您可以像这样使用"selection-changed"信号:

def selection_changed (filechooser, udata):
print ("selected ", filechooser.get_filename()) # GtkFileChooser method
if True:                                        # some selection checking
filechooser.response(Gtk.ResponseType.OK)   # GtkDialog method
dialog = Gtk.FileChooserDialog(...)
dialog.connect ("selection-changed", selection_changed, None)
response = dialog.run()
if response == Gtk.ResponseType.OK:
pass
elif response == Gtk.ResponseType.CANCEL:
pass
dialog.destroy()

但每当用户与filechooser交互时,即使用户使用breadcrumb按钮更改文件夹,也会发出此信号。这将由您决定,是时候用"确定"、"取消"还是根本不回应了。

此外,用户可能会感到困惑,因为在其他所有应用程序中都需要按OkEnter的对话框在您的应用程序中的行为与此不同。

相关内容

  • 没有找到相关文章

最新更新