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)
python类Builder()的实例源码
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)
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)
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()
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()
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)
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()
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()
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()
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)
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()
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()
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]
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
)
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
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
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)
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)
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)
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)
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
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()
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()
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
def get_video_item_widgets(self,widget):
builder = Gtk.Builder()
builder.add_from_string( self.video_item_string )
return builder.get_object(widget)
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}
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)
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)
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
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