从Python中的FileChooserButton获取文件夹路径

从Python中的FileChooserButton获取文件夹路径,python,path,gtk,glade,filechooser,Python,Path,Gtk,Glade,Filechooser,我正在尝试使用Python和Glade制作一个基本的文件传输GUI应用程序,在尝试从文件选择器对话框获取路径时遇到了一点障碍。我尝试了我所知道的一切,但都没有成功 .glade文件相当长,因此我在此处发布了代码: 我的Python代码如下所示 import datetime from ftplib import FTP from magip import * from gi.repository import Gtk class FTP(): def __init__(self):

我正在尝试使用Python和Glade制作一个基本的文件传输GUI应用程序,在尝试从文件选择器对话框获取路径时遇到了一点障碍。我尝试了我所知道的一切,但都没有成功

.glade文件相当长,因此我在此处发布了代码:

我的Python代码如下所示

import datetime
from ftplib import FTP
from magip import *
from gi.repository import Gtk

class FTP():
    def __init__(self):
        self.builder = Gtk.Builder()
        self.builder.add_from_file("ftp.glade")

        go = self.builder.get_object

        self.window = go("window1")
        self.store_magazine = go("store_magazine")
        self.combo_magazine = go("combo_magazine")
        self.store_luni = go("store_luni")
        self.combo_luni = go("combo_luni")
        self.select_folder = go("select_folder")
        self.btn_start = go("btn_start")

        for ip in magazine:
            self.store_magazine.append([magazine[ip]])

        if host in magazine:
            self.combo_magazine.set_active(magip_index[host])

        for luna in luni:
            self.store_luni.append([luni[luna]])

        self.builder.connect_signals(Handlers())
        self.window.show_all()


class Handlers():
    def btn_start_clicked(self, button):
        with open("btn.txt", "a") as muhfile:
            text = "click {}\n".format(datetime.datetime.now())
            muhfile.write(text)


if __name__ == "__main__":
    gui = FTP()
    Gtk.main()
Handlers类是我想要放置所有信号的地方。目前只有一个,用于测试
START
按钮

非常感谢您的帮助


谢谢大家!

您必须连接到“文件集”信号。处理程序类如下所示:

class Handlers():
    def btn_start_clicked(self, button):
        with open("btn.txt", "a") as muhfile:
            text = "click {}\n".format(datetime.datetime.now())
            muhfile.write(text)

    def directory_set(self, button):
        print(button.get_filename())
    <child>
      <object class="GtkFileChooserButton" id="select_folder">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="action">select-folder</property>
        <property name="create_folders">False</property>
        <property name="preview_widget_active">False</property>
        <property name="use_preview_label">False</property>
        <property name="title" translatable="yes">Select folder</property>
        <signal name="file-set" handler="directory_set" swapped="no"/>
      </object>
      <packing>
        <property name="left_attach">0</property>
        <property name="top_attach">3</property>
      </packing>
    </child>
还有Glade文件中的FileChooserButton,如下所示:

class Handlers():
    def btn_start_clicked(self, button):
        with open("btn.txt", "a") as muhfile:
            text = "click {}\n".format(datetime.datetime.now())
            muhfile.write(text)

    def directory_set(self, button):
        print(button.get_filename())
    <child>
      <object class="GtkFileChooserButton" id="select_folder">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="action">select-folder</property>
        <property name="create_folders">False</property>
        <property name="preview_widget_active">False</property>
        <property name="use_preview_label">False</property>
        <property name="title" translatable="yes">Select folder</property>
        <signal name="file-set" handler="directory_set" swapped="no"/>
      </object>
      <packing>
        <property name="left_attach">0</property>
        <property name="top_attach">3</property>
      </packing>
    </child>

真的
假的
选择文件夹
假的
假的
假的
选择文件夹
0
3.

干杯,伙计,成功了!