Profil supprimé | Bonjour,
Dans la petite application ou je travaille, j'ai réussi à faire en sorte de choisir un dossier et que celui-ci soit pris en compte via un GtkFileChooserButton. La partie "graphique" de l'application se faisant via Glade.
Le problème est sur le bouton en lui-même, en 1er lieu, j'aimerais qu'il pointe par défaut sur un dossier et en 2nd lieu, j'aimerais qu'après le choix d'un dossier quelconque, le bouton se "mette à jour".
1er screenshot pour comprendre, lorsque vais dans les Préférences de l'application, j'ai ceci :
Vous pouvez voir en arrière fond mes jeux GoG non installés, je ne peux que les télécharger. Ayant deux jeux déjà installés, je navigue via le bouton vers le dossier en question, comme le montre le screenshot suivant :
En cliquant sur "Save", la prise en compte à bien eu lieu car si vous regardez mes jeux, vous remarquerez que 2 jeux sont passés de l'état "Download" -> "Play", signe que l'application a bien trouvé les jeux. Par contre, si je retourne dans les préférences, il se trouve que le bouton est de nouveau du "None" :
En espérant avoir été clair, je répète ce que je n'arrive pas à finaliser :
1- Avoir un dossier choisi par défaut au 1er lancement des paramètres sur le bouton.
2- Que le dit bouton se "mette à jour" à chaque fois que je choisi un dossier quelconque et que je sauvegarde.
Voici la portion de code :
@Gtk.Template.Callback('on_filechooser_button_file_set')
def __set_install_path(self, widget) -> None:
path = self.filechooser_button.get_filename()
print("The path is :", path)
self.filechooser_button.set_current_folder(path)
def __save_install_dir_choice(self) -> bool:
choice = self.filechooser_button.get_current_folder()
print("The path saved is :", choice)
if not os.path.exists(choice):
try:
os.makedirs(choice)
except:
return False
else:
write_test_file = os.path.join(choice, "write_test.txt" )
try:
with open(write_test_file, "w" ) as file:
file.write("test" )
file.close()
os.remove(write_test_file)
except:
return False
# Remove the old directory if it is empty
old_dir = self.__config.get("install_dir" )
try:
os.rmdir(old_dir)
except OSError:
pass
self.__config.set("install_dir", choice)
return True
@Gtk.Template.Callback("on_button_save_clicked" )
def save_pressed(self, button):
self.__save_language_choice()
if self.__save_install_dir_choice():
self.response(Gtk.ResponseType.OK)
self.parent.refresh_game_install_states(path_changed=True)
self.destroy()
else:
dialog = Gtk.MessageDialog(
parent=self,
modal=True,
destroy_with_parent=True,
message_type=Gtk.MessageType.ERROR,
buttons=Gtk.ButtonsType.OK,
text=_("{} isn't a usable path" ).format(self.entry_installpath.get_text())
)
dialog.run()
dialog.destroy()
@Gtk.Template.Callback("on_button_cancel_clicked" )
def cancel_pressed(self, button):
self.response(Gtk.ResponseType.CANCEL)
self.destroy() |
|