Bonjour,
Je developpe ma 1ere application sous Python 3 et QT 5 sous Linux (Tirez pas je suis pas developpeur). Il s'agit d'une GUI pour un logiciel en ligne de commande (dvgrab pour ceux qui connaissent) pour récuperer mes films de mon camescope DV. J'arrive à mes préférences avec deux methodes loadSettings qui me sert à charger mes parametres et saveSettings pour les sauvegarder. J'ai choisi de passer par QT plutot que par configparser et j'ai épluché la doc pour faire le bout de code qui suit. Je ne pensais pas faire d'erreur, j'ai créé ma methode saveSettings sans probleme de lancement de ma Gui. Je me suis attaqué à la methode loadSettings et quand j'ai voulu testé, mon appli crashes avec cette erreur :
Si quelq'un pouvait m'eclairer, je lui en serais reconnaissant et par avance merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 [olivier@thorielle QdvGrab]$ python src/ui/qdvgrab.py Welcome to QDvGrab 0.10. Hope you'll enjoy it. Please report all bugs,features request and comments at olivier@openshot.org Traceback (most recent call last): File "/home/olivier/Developpement/QdvGrab/src/ui/preferences.py", line 272, in loadSettings automatic_conversion = settings.value('automatic_conversion').toBool() AttributeError: 'NoneType' object has no attribute 'toBool' Abandon (core dumped)
Voici le code des deux methodes en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89 #=================================================================================================================== def loadSettings(self): """ Here we load user settings and if none a basic config by default is loaded """ settings = QSettings() language = settings.value('language').toString() new_output_path = settings.value('new_output_path').toString() name_camcorder = settings.value('name_camcorder').toString() formats_choose = settings.value('formats_choose').toString() automatic_conversion = settings.value('automatic_conversion').toBool() detection_scene = settings.value('detection_scene').toBool() automatic_record = settings.value('automatic_record').toBool() if language: index = self.ui.cmblanguages.itemText(language) self.ui.cmblanguages.setCurrentIndex(index) else: self.ui.cmblanguages.setCurrentIndex(language) if new_output_path: self.ui.lneoutputfile.setText(new_output_path) if name_camcorder: self.ui.lnenamecamecorder.setText(name_camcorder) if formats_choose: index = self.ui.cmbformatcapture.itemText(formats_choose) self.ui.cmbformatcapture.setCurrentIndex(index) else: self.ui.cmbformatcapture.setCurrentIndex(formats_choose) if automatic_conversion: self.ui.chknone.setChecked(True) if detection_scene: self.ui.chkdetection.setChecked(True) if automatic_record: self.ui.chkautomaticrecord.setChecked(True) #=================================================================================================================== def saveSettings(self): """ Here we save users setting when the application is closed and if none a basic config by default is loaded """ #MainWindowSettings language = QLocale.system().name() #GeneralSettings new_output_path = os.path.join(QDir.homePath() + "/Videos/") name_camcorder = self.ui.lnenamecamecorder.text() formats_choose = self.ui.cmbformatcapture.setCurrentIndex() #ConversionSettings automatic_conversion = self.ui.chknone.isChecked() detection_scene = self.ui.chkdetection.isChecked() #CaptureSettings automatic_record = self.ui.chkautomaticrecord.isChecked() settings = QSettings(QSettings.SystemScope, 'eCreate', 'qdvgrab') #settings.beginGroup('MainWindowSettings') #settings.setValue() #settings.setValue() #settings.endGroup() settings.beginGroup('GeneralSettings') settings.setValue('language', language) settings.setValue('new_output_path', new_output_path) settings.setValue('name_camcorder', name_camcorder) settings.endGroup() settings.beginGroup('ConversionSettings') settings.setValue('formats_choose', formats_choose) settings.setValue('automatic_conversion', automatic_conversion) settings.setValue('detection_scene', detection_scene) settings.endGroup() settings.beginGroup('CaptureSettings') settings.setValue('automatic_record', automatic_record) settings.endGroup() #=============================================================================================================
Partager