2017-07-18 5 views

Antwort

1

Sie können GtkFileChooserWidget (Gtkmm 2.24) verwenden.

Es ist das grundlegende Widget, das GtkFileChooserDialog verwendet. Wie die Beschreibung sagt:

GtkFileChooserWidget ist ein Widget zum Auswählen von Dateien geeignet. Es ist der Hauptbaustein eines GtkFileChooserDialog. Die meisten Anwendungen müssen nur letztere verwenden; Sie können GtkFileChooserWidget als Teil eines größeren Fensters verwenden, wenn Sie spezielle Anforderungen haben.

Beachten Sie, dass GtkFileChooserWidget über keine eigenen Methoden verfügt. Stattdessen sollten Sie die Funktionen verwenden, die auf einem GtkFileChooser funktionieren.

1

Beachten Sie, dass wenn das, was Sie in die FileChooserDialog hinzufügen möchten nicht zu kompliziert ist, könnte man erwägen, die zusätzliche Funktionalität in den Dialog Hinzufügen von selbst, anstatt ein neues Fenster zu schaffen (mit all Bürokratie beteiligt).

Sie können auf den oberen Teil des Dialogfelds (über die Schaltflächen OK/Abbrechen) zugreifen, indem Sie get_content_area() aufrufen. Sie werden einen Verweis auf eine VBox erhalten, zu dem Sie dann weitere Elemente hinzufügen können, wie zum Beispiel Last oder Speicheroptionen, Formate, usw.

Hier ist ein sehr einfaches Beispiel, das eine Kontrolltaste in den Dialog fügt hinzu:

#!/usr/bin/env python3 
# -*- coding: utf-8 -*- 
# 
# test_filechooser_extension.py 
# 
# Copyright 2017 John Coppens <[email protected]> 
# 
# This program is free software; you can redistribute it and/or modify 
# it under the terms of the GNU General Public License as published by 
# the Free Software Foundation; either version 2 of the License, or 
# (at your option) any later version. 
# 
# This program is distributed in the hope that it will be useful, 
# but WITHOUT ANY WARRANTY; without even the implied warranty of 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
# GNU General Public License for more details. 
# 
# You should have received a copy of the GNU General Public License 
# along with this program; if not, write to the Free Software 
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
# MA 02110-1301, USA. 
# 
# 


from gi.repository import Gtk 

class MainWindow(Gtk.Window): 
    def __init__(self): 
     super(MainWindow, self).__init__() 
     self.connect("destroy", lambda x: Gtk.main_quit()) 

     btn = Gtk.Button("Click to activate file chooser") 
     btn.connect("clicked", self.button_clicked) 

     self.add(btn) 
     self.show_all() 

    def run(self): 
     Gtk.main() 

    def button_clicked(self, btn): 
     fc = Gtk.FileChooserDialog(
        parent = self, 
        action = Gtk.FileChooserAction.OPEN, 
        buttons = ("Open", Gtk.ResponseType.OK, 
           "Cancel", Gtk.ResponseType.CANCEL)) 
     area = fc.get_content_area() 
     option = Gtk.CheckButton("This could be an extra option") 
     area.pack_start(option, False, False, 0) 
     option.show() 

     fc.run() 
     fc.destroy() 


def main(args): 
    mainwdw = MainWindow() 
    mainwdw.run() 

    return 0 

if __name__ == '__main__': 
    import sys 
    sys.exit(main(sys.argv)) 

Beachten Sie, dass Sie den hinzugefügten Widgets .show() hinzufügen müssen.

Verwandte Themen