python类Builder()的实例源码

gtkui.py 文件源码 项目:yt-browser 作者: juanfgs 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def update_list(self,search_result):
        """ Dynamically create widgets and place them on the video list """
        builder = Gtk.Builder()
        builder.add_from_string( self.video_item_string )
        url = search_result["snippet"]["thumbnails"]["default"]["url"]
        download_button = builder.get_object("download-button")
        convert_button = builder.get_object("convert-button")
        video_item_box = builder.get_object("video-item-box")
        video_thumbnail = builder.get_object("video-image")
        video_info = builder.get_object("video-info")
        download_button.connect("clicked",self.on_download_clicked, { "video_id": search_result["id"]["videoId"], "title": search_result["snippet"]["title"], "action": "download" })
        convert_button.connect("clicked",self.on_download_clicked, { "video_id": search_result["id"]["videoId"], "title": search_result["snippet"]["title"], "action": "convert" })

        response = urllib.request.urlopen(url)
        fname = "/tmp/yt-browser-thumb" + url.split("/")[-1]

        f = open(fname, "wb")
        f.write(response.read())
        f.close()
        response.close()
        video_thumbnail.set_from_pixbuf(Pixbuf.new_from_file(fname))

        video_info.set_markup(search_result["snippet"]["title"] )
        self.video_list.add(video_item_box)
configuration_window.py 文件源码 项目:susi_linux 作者: fossasia 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def __init__(self) -> None:
        super().__init__()
        builder = Gtk.Builder()
        builder.add_from_file(os.path.join(
            TOP_DIR, "glade_files/configure.glade"))

        self.window = builder.get_object("configuration_window")
        self.stt_combobox = builder.get_object("stt_combobox")
        self.tts_combobox = builder.get_object("tts_combobox")
        self.auth_switch = builder.get_object("auth_switch")
        self.snowboy_switch = builder.get_object("snowboy_switch")
        self.wake_button_switch = builder.get_object("wake_button_switch")

        self.init_auth_switch()
        self.init_tts_combobox()
        self.init_stt_combobox()
        self.init_hotword_switch()
        self.init_wake_button_switch()

        builder.connect_signals(ConfigurationWindow.Handler(self))
        self.window.set_resizable(False)
gui.py 文件源码 项目:Projects 作者: SilverLuke 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self, p, gui):
        builder = Gtk.Builder()
        builder.add_from_file(settings.PATH_UI_ROW)
        builder.get_object("project_name").set_text(p.name)

        self.row  = builder.get_object("project_row")
        self.menu = builder.get_object("popup_menu")
        self.p    = p
        p.spinner = builder.get_object("spinner")
        p.error   = builder.get_object("error")
        self.menu.set_relative_to(self.row)

        handlers = {
            "on_project_row_button_release_event" : (gui.handle_focus, self),
            "on_update_btn_clicked"         : (gui.pm.update, p, gui.set_status),
            "on_compile_btn_clicked"        : (gui.pm.compile, p, gui.set_status),
            "on_update_compile_btn_clicked" : (gui.pm.update_compile, p, gui.set_status),
            "on_settings_btn_clicked"       : (gui.project_window.modify, p),
            "on_open_btn_clicked"           : (gui.open_file_manager, p),
            "on_run_btn_clicked"            : (gui.run_project, p)
        }
        builder.connect_signals(handlers)
__main__.py 文件源码 项目:ImunesExperimentExporter 作者: patriziotufarolo 项目源码 文件源码 阅读 38 收藏 0 点赞 0 评论 0
def __init__(self):
        xml = "ImunesExpExporter.glade"

        self.glade = Gtk.Builder()
        self.glade.add_from_file(os.path.join(os.path.abspath(os.path.dirname(__file__)),xml))
        self.glade.connect_signals(self)
        self.experiments = self.getExperiments()

        go = self.glade.get_object

        self.window = window = go("main_window")
        experimentsList = go("experiments")
        containersList = go("containers")
        experimentsCtl = go("combo_experiments")
        containersCtl = go("tree_containers")
        window.set_title("IMUNES - Export/Import experiment")

        for k in self.experiments:
            experimentsList.append([k])

        experimentsCtl.set_active(0)
        window.show_all()
recovery_advanced_gtk.py 文件源码 项目:dell-recovery 作者: dell 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def base_toggled(self, widget):
        """Called when the radio button for the Builder base image page is
           changed"""
        base_browse_button = self.builder_widgets.get_object('base_browse_button')
        base_page = self.builder_widgets.get_object('base_page')
        wizard = self.widgets.get_object('wizard')
        label = self.builder_widgets.get_object('base_image_details_label')

        label.set_markup("")
        base_browse_button.set_sensitive(True)
        wizard.set_page_complete(base_page, False)

        if self.builder_widgets.get_object('iso_image_radio').get_active():
            self.file_dialog.set_action(Gtk.FileChooserAction.OPEN)
        elif self.builder_widgets.get_object('directory_radio').get_active():
            self.file_dialog.set_action(Gtk.FileChooserAction.SELECT_FOLDER)
        else:
            base_browse_button.set_sensitive(False)
            self.base_file_chooser_picked()
recovery_advanced_gtk.py 文件源码 项目:dell-recovery 作者: dell 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def fid_toggled(self, widget):
        """Called when the radio button for the Builder FID overlay page is changed"""
        wizard = self.widgets.get_object('wizard')
        fid_page = self.builder_widgets.get_object('fid_page')
        label = self.builder_widgets.get_object('fid_overlay_details_label')

        wizard.set_page_complete(fid_page, False)
        self.builder_widgets.get_object('add_dell_recovery_button').set_sensitive(False)

        if self.builder_widgets.get_object('builtin_radio').get_active():
            wizard.set_page_complete(fid_page, True)
            label.set_markup("<b>Builtin</b>: BTO Compatible Image")
            self.add_dell_recovery_deb = ''

        elif self.builder_widgets.get_object('deb_radio').get_active():
            if self.add_dell_recovery_deb:
                wizard.set_page_complete(fid_page, True)
            else:
                label.set_markup("")
            self.builder_widgets.get_object('add_dell_recovery_button').set_sensitive(True)
album_view.py 文件源码 项目:MokaPlayer 作者: vedard 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def __init__(self, album_playlist, row_activated, button_press_event, hide_header=False):
        self.album_playlist = album_playlist
        self.builder = Gtk.Builder()
        self.builder.add_from_file(self.GLADE_FILE)

        self.view = self.builder.get_object("view")
        self.grid_songs = self.builder.get_object("grid_songs")
        self.img_cover = self.builder.get_object("img_cover")
        self.lbl_album_name = self.builder.get_object("lbl_album_name")
        self.lbl_year = self.builder.get_object("lbl_year")
        self.header = self.builder.get_object("header")

        self.grid_songs.connect('row-activated', row_activated)
        self.grid_songs.connect('button-press-event', button_press_event)
        self.grid_songs.connect('focus-in-event', self.on_grid_songs_focus_in_event)

        if hide_header:
            self.view.remove(self.header)
        else:
            self.lbl_album_name.set_text(self.album_playlist.album.Name)
            self.lbl_year.set_text(self.album_playlist.album.Year)

        image_helper.set_image(self.img_cover, album_playlist.album.Cover, 220, 220)

        self._build_grid_songs()
tagseditor_window.py 文件源码 项目:MokaPlayer 作者: vedard 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __init__(self, songs):
        self.songs = songs

        self.builder = Gtk.Builder()
        self.builder.add_from_file(self.GLADE_FILE)
        self.builder.connect_signals(self)

        self.window = self.builder.get_object("tagseditor_window")
        self.txt_Title = self.builder.get_object("txt_Title")
        self.txt_Artist = self.builder.get_object("txt_Artist")
        self.txt_ArtistAlbum = self.builder.get_object("txt_ArtistAlbum")
        self.txt_Album = self.builder.get_object("txt_Album")
        self.txt_TrackNumber = self.builder.get_object("txt_TrackNumber")
        self.txt_Year = self.builder.get_object("txt_Year")
        self.txt_Genre = self.builder.get_object("txt_Genre")
        self.txt_Added = self.builder.get_object("txt_Added")
        self.txt_Comment = self.builder.get_object("txt_Comment")
        self.txt_Length = self.builder.get_object("txt_Length")
        self.txt_Channels = self.builder.get_object("txt_Channels")
        self.txt_Bitrate = self.builder.get_object("txt_Bitrate")
        self.txt_Path = self.builder.get_object("txt_Path")

        self.load_text()
main.py 文件源码 项目:SolStudio 作者: alianse777 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def __init__(self):
        self.builder = Gtk.Builder()
        self.builder.add_from_file("main.xml")
        self.win = self.builder.get_object("window_main")
        self.win.connect("delete-event", self.exit)
        self.win.modify_bg(Gtk.StateType.NORMAL, Gdk.color_parse("white"))
        self.win.show_all()
        self.prefix = "SolStudio"
        self.ws = 0 # TODO: workspaces
        self.ctrl = False
        self.completion = True
        self.saved = [True]
        self.buff = [None]
        self.FILE = [None]
        self.ident = 0
        self.connect()
        self.check_solc()
        self.reopen() # check for the last opened file
        Gtk.main()
groups.py 文件源码 项目:luminance 作者: craigcabrey 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __init__(self, bridge, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.bridge = bridge

        builder = Gtk.Builder()
        builder.add_from_resource(get_resource_path('ui/groups.ui'))
        builder.connect_signals(self)

        self.content = builder.get_object('content-wrapper')
        self.groups_list = builder.get_object('list')

        self.groups_list.add(ListBoxRow(phue.AllLights(self.bridge)))
        for group in self.bridge.groups:
            self.groups_list.add(ListBoxRow(group))

        self.add(self.content)
location.py 文件源码 项目:nautilus-git 作者: bil-elmoussaoui 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __init__(self, git_uri, window):
        self._window = window
        self._git = Git(git_uri)
        self._watchdog = WatchDog(self._git.dir)
        self._watchdog.connect("refresh", self._refresh)

        self._builder = Gtk.Builder()

        self._builder.add_from_resource('/com/nautilus/git/ui/location.ui')
        self._builder.connect_signals({
            "open_remote_clicked": self._open_remote_browser,
            "compare_commits_clicked": self._compare_commits,
            "popover_clicked": self._trigger_popover,
            "branch_clicked": self._update_branch
        })
        self._build_widgets()
branch.py 文件源码 项目:nautilus-git 作者: bil-elmoussaoui 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def __init__(self, git_uri, window):
        GObject.GObject.__init__(self)
        self._git = git_uri

        self._builder = Gtk.Builder()
        self._builder.add_from_resource('/com/nautilus/git/ui/branch.ui')
        self._builder.connect_signals({
            "on_cancel": self._close_window,
            "on_apply": self._update_branch,
            "branch_changed": self._validate_branch_name
        })

        self._window = self._builder.get_object("window")
        self._window.set_transient_for(window)
        self._build_main_widget()
        self._window.show_all()
sftp_utilities.py 文件源码 项目:king-phisher-plugins 作者: securestate 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def get_object(gtk_object):
    """
    Used to maintain a diction of GTK objects to share through the SFTP Client

    :param str gtk_object: The name of the GTK Object to fetch
    :return: The requested gtk object
    """
    global _builder
    if not _builder:
        _builder = Gtk.Builder()
    if not _gtk_objects:
        _builder.add_from_file(gtk_builder_file)
    if gtk_object in _gtk_objects:
        return _gtk_objects[gtk_object]
    else:
        _gtk_objects[gtk_object] = _builder.get_object(gtk_object)
        return _gtk_objects[gtk_object]
modules.py 文件源码 项目:gpt 作者: encarsia 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def __init__(self):
        self.builder = Gtk.Builder()
        self.builder.set_translation_domain(cli.appname)

        #load tlcalculator and subordinated window glade files
        self.builder.add_from_file(cli.gladefile[0])
        self.builder.add_from_file(cli.gladefile[1])

        #initiate custom css
        #...encode() is needed because CssProvider expects byte type input

        with open(cli.stylesheet,"r") as f:
            css = f.read().encode()

        style_provider = Gtk.CssProvider()
        style_provider.load_from_data(css)

        Gtk.StyleContext.add_provider_for_screen(
            Gdk.Screen.get_default(),
            style_provider,
            Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
        )
toolbar.py 文件源码 项目:ACYLS 作者: worron 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self):
        # Load GUI
        self.builder = Gtk.Builder()
        self.builder.add_from_file(os.path.join(acyls.dirs['gui'], "toolbar.glade"))

        gui_elements = (
            'toolbar', 'add_color_toolbutton', 'remove_color_toolbutton', 'copy_color_toolbutton',
            'paste_color_toolbutton', 'save_settings_toolbutton', 'load_settings_toolbutton',
            'reset_settings_toolbutton', 'load_filter_toolbutton', 'save_filter_toolbutton',
            'save_as_filter_toolbutton', 'revert_filter_toolbutton', 'edit_filter_toolbutton'
        )
        self.gui = {element: self.builder.get_object(element) for element in gui_elements}

        self.buttons = [e for e in gui_elements if e != 'toolbar']

    # Support functions
Utility.py 文件源码 项目:SafeEyes 作者: slgobinath 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def create_gtk_builder(glade_file):
    """
    Create a Gtk builder and load the glade file.
    """
    builder = Gtk.Builder()
    builder.set_translation_domain('safeeyes')
    builder.add_from_file(glade_file)
    # Tranlslate all sub components
    for obj in builder.get_objects():
        if (not isinstance(obj, Gtk.SeparatorMenuItem)) and hasattr(obj, "get_label"):
            label = obj.get_label()
            if label is not None:
                obj.set_label(_(label))
        elif hasattr(obj, "get_title"):
            title = obj.get_title()
            if title is not None:
                obj.set_title(_(title))
    return builder
channel.py 文件源码 项目:kickoff-player 作者: jonian 项目源码 文件源码 阅读 26 收藏 0 点赞 0 评论 0
def __init__(self, app):
    self.app    = app
    self.stack  = app.channels_stack
    self.filter = None

    self.channels = Gtk.Builder()
    self.channels.add_from_file(relative_path('ui/channels.ui'))
    self.channels.connect_signals(self)

    self.channels_box = self.channels.get_object('box_channels')
    self.stack.add_named(self.channels_box, 'channels_container')

    self.channels_filters = self.channels.get_object('list_box_channels_filters')
    self.channels_list    = self.channels.get_object('flow_box_channels_list')
    self.channels_list.set_filter_func(self.on_channels_list_row_changed)

    GLib.idle_add(self.do_initial_setup)
find.py 文件源码 项目:sticky-notes 作者: rubyAce71697 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def __init__(self):




        logger.debug(" Initializing the FIND object")
        self.builder = Gtk.Builder()
        d = os.path.abspath(os.path.join(os.path.dirname(__file__)))
        #print d
        d = os.path.join(d,"find.glade")
        #print d
        self.builder.add_from_file(d)
        self.find_window = self.builder.get_object("find_window")
        self.__search_entry = self.builder.get_object('searchentry1')
        self.find_window.set_can_focus(True)
        self.find_window.connect('delete_event',self.hide)
app.py 文件源码 项目:gstation-edit 作者: fengalin 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def __init__( self ):
        GObject.threads_init()

        self.config = SafeConfigParser(allow_no_value=True)
        config_base_path = os.path.expanduser('~/.config/gstation-edit')
        if not os.path.isdir(config_base_path):
            os.makedirs(config_base_path)
        self.config_path = os.path.join(config_base_path, 'settings.cfg')
        self.config.read(self.config_path)


        gtk_builder_file = os.path.join('gstation_edit/resources',
                                        'gstation-edit-one-window.ui')

        self.gtk_builder = Gtk.Builder()
        self.gtk_builder.add_from_file(gtk_builder_file)

        self.js_sniffer = JStationSniffer(sys.argv[0])
        self.midi_dlg = MidiSelectDlg(self.gtk_builder, self.config, self,
                                      self.js_sniffer,
                                      self.on_connected, self.quit)
        self.midi_dlg.gtk_dlg.connect('destroy', self.quit)
app.py 文件源码 项目:gstation-edit 作者: fengalin 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def __init__( self ):
        GObject.threads_init()

        self.config = SafeConfigParser(allow_no_value=True)
        config_base_path = os.path.expanduser('~/.config/gstation-edit')
        if not os.path.isdir(config_base_path):
            os.makedirs(config_base_path)
        self.config_path = os.path.join(config_base_path, 'settings.cfg')
        self.config.read(self.config_path)

        gtk_builder_file = os.path.join(DATA_ROOT_DIR,
                                        'gstation-edit-one-window.ui')

        self.gtk_builder = Gtk.Builder()
        self.gtk_builder.add_from_file(gtk_builder_file)

        self.main_window = MainWindow(sys.argv[0], self.config, self.gtk_builder)
        self.main_window.gtk_window.connect('destroy', self.quit)
window.py 文件源码 项目:sound-organiser-offline-app 作者: nils-van-zuijlen 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def __init__(self, parent=None):
        """
        Creates the main GtkWindow from template

        `parent` is the app stored in app.py
        """
        interface = Gtk.Builder()
        interface.add_from_file(realpath('glade_windows/window.glade'))

        interface.connect_signals(self)

        self.main_box = interface.get_object('main_box')
        self.main_widget = interface.get_object('main_window')

        self.main_widget.maximize()

        self.parent = parent
__main__.py 文件源码 项目:duck-feed 作者: h0m3stuck 项目源码 文件源码 阅读 30 收藏 0 点赞 0 评论 0
def on_finish_btn_clicked(self, btn):
        self.feed_manager.update_json()
        builder2 = Gtk.Builder()
        builder2.add_from_file('feed_reader.glade')
        builder2.connect_signals(ReaderHandler(builder2, self.feed_manager))
        window = builder2.get_object('reader_window')
        window.show_all()
__main__.py 文件源码 项目:duck-feed 作者: h0m3stuck 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def main():
    builder = Gtk.Builder()
    builder.add_from_file('main_window.glade')
    builder.connect_signals(MainHandler(builder, FeedManager()))

    window = builder.get_object('main_window')
    window.show_all()

    # Fix keyboard interrupt not working
    signal.signal(signal.SIGINT, signal.SIG_DFL)
    Gtk.main()
gtkui.py 文件源码 项目:yt-browser 作者: juanfgs 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self, backend, *args, **kwargs):

        super().__init__(*args, application_id="org.gnome.ytbrowser",
                         flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE,
                         **kwargs
        )
        with open('/usr/share/YTBrowser/resources/ui/video-item.ui') as ui_file:
            self.video_item_string = ui_file.read()

        self.builder = Gtk.Builder()
        self.builder.add_from_file( '/usr/share/YTBrowser/resources/ui/yt-browser.ui')

        self.menubuilder = Gtk.Builder()
        self.menubuilder.add_from_file( '/usr/share/YTBrowser/resources/ui/menu.ui')

        self.builder.connect_signals(self)
        self.window = None

        #Get objects from ui file
        self.video_list = self.builder.get_object("video_list")
        self.progressbar = self.builder.get_object("progressbar")
        self.progress_dialog = self.builder.get_object("progress_dialog")
        self.settings_box = self.builder.get_object("settings_box")


         #the download queue
        self.download_queue = self.builder.get_object("download_queue")

        self.download_queue_scrolled_window = self.builder.get_object("download_queue_scrolled_window")
        self.download_queue_store = self.builder.get_object("download_queue_store")
        #set download_queue_columns
        #set download callback
        self.downloading_videos = []
        self.main_backend = backend
gtkui.py 文件源码 项目:yt-browser 作者: juanfgs 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def get_video_item_widgets(self,widget):
        builder = Gtk.Builder()
        builder.add_from_string( self.video_item_string )
        return builder.get_object(widget)
common.py 文件源码 项目:aniwall 作者: worron 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def __init__(self, *files, elements=(), path=None):
        self.resource_path = path
        self.builder = Gtk.Builder()
        for file_ in files:
            self.builder.add_from_resource(self.resource_path + "ui/" + file_)
        self.gui = {element: self.builder.get_object(element) for element in elements}
login_window.py 文件源码 项目:susi_linux 作者: fossasia 项目源码 文件源码 阅读 41 收藏 0 点赞 0 评论 0
def __init__(self):
        builder = Gtk.Builder()
        builder.add_from_file(os.path.join(
            TOP_DIR, "glade_files/signin.glade"))

        self.window = builder.get_object("login_window")
        self.email_field = builder.get_object("email_field")
        self.password_field = builder.get_object("password_field")
        self.spinner = builder.get_object("signin_spinner")
        self.sign_in_button = builder.get_object("signin_button")
        self.sign_in_button.set_sensitive(False)

        builder.connect_signals(LoginWindow.Handler(self))
        self.window.set_resizable(False)
app_window.py 文件源码 项目:susi_linux 作者: fossasia 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def __init__(self):
        super().__init__()
        builder = Gtk.Builder()
        builder.add_from_file(os.path.join(TOP_DIR, "glade_files/susi_app.glade"))

        self.window = builder.get_object("app_window")
        self.user_text_label = builder.get_object("user_text_label")
        self.susi_text_label = builder.get_object("susi_text_label")
        self.root_box = builder.get_object("root_box")
        self.state_stack = builder.get_object("state_stack")
        self.mic_button = builder.get_object("mic_button")
        self.mic_box = builder.get_object("mic_box")
        self.listening_box = builder.get_object("listening_box")
        self.thinking_box = builder.get_object("thinking_box")
        self.error_label = builder.get_object("error_label")
        self.settings_button = builder.get_object("settings_button")

        listeningAnimator = ListeningAnimator(self.window)
        self.listening_box.add(listeningAnimator)
        self.listening_box.reorder_child(listeningAnimator, 1)
        self.listening_box.set_child_packing(listeningAnimator, False, False, 0, Gtk.PackType.END)

        thinkingAnimator = ThinkingAnimator(self.window)
        self.thinking_box.add(thinkingAnimator)
        self.thinking_box.reorder_child(thinkingAnimator, 1)
        self.thinking_box.set_child_packing(thinkingAnimator, False, False, 0, Gtk.PackType.END)

        builder.connect_signals(SusiAppWindow.Handler(self))
        self.window.set_default_size(300, 600)
        self.window.set_resizable(False)
application.py 文件源码 项目:Gnome-Authenticator 作者: bil-elmoussaoui 项目源码 文件源码 阅读 32 收藏 0 点赞 0 评论 0
def shortcuts_dialog():
        if Gtk.get_major_version() >= 3 and Gtk.get_minor_version() >= 20:
            builder = Gtk.Builder()
            builder.add_from_resource('/org/gnome/Authenticator/shortcuts.ui')
            shortcuts = builder.get_object("shortcuts")
            return shortcuts
        return None
application.py 文件源码 项目:Gnome-Authenticator 作者: bil-elmoussaoui 项目源码 文件源码 阅读 29 收藏 0 点赞 0 评论 0
def about_dialog():
        """
            Shows about dialog
        """
        builder = Gtk.Builder()
        builder.add_from_resource('/org/gnome/Authenticator/about.ui')

        dialog = builder.get_object("AboutDialog")
        return dialog


问题


面经


文章

微信
公众号

扫码关注公众号