[Interest] using QSetting when host application is using it as well

Constantin Makshin cmakshin at gmail.com
Thu Feb 2 08:19:37 CET 2017


Hi Frank.

Looks like the host application uses QSettings::setPath()
(http://doc.qt.io/qt-5/qsettings.html#setPath) to enforce a specific
directory for configuration files. Calling that method from your code is
obviously a bad idea (high risk of screwing up the host application), so
your "fallback" is the easiest solution. It'll be even better if you
replace the "~/.config" part with proper runtime detection of user
settings' directory (e.g.
QStandardPaths::writableLocation(QStandardPaths::GenericConfigLocation)).

On 02/02/2017 08:35 AM, Frank Rueter | OHUfx wrote:
> In the meantime I am falling back on using this:
>      os.path.expanduser('~/.config/companyName/appName')
> 
> While this does not give me the OS' native support directory for the
> respective user at least it's consistent :)
> 
> I'd still be interested in a QSettings solution though.
> 
> Cheers,
> frank
> 
> On 2/02/17 4:51 PM, Frank Rueter | OHUfx wrote:
>> Hi all,
>>
>> I have been using QSettings for reading/writing user settings.
>> All works well until I run my (PySide) application inside a host
>> application that is also written in QT, and which also uses the
>> QSettings object.
>>
>> I am now struggling to understand how I can properly differentiate
>> between the host application's settings instance and my own.
>> In particular, I need to use QSettings().fileName() to determine the
>> correct support path for my ini files for each platform.
>> But this line gives me different values inside and outside the host
>> application:
>>
>>     QtCore.QSettings(QtCore.QSettings.IniFormat,
>>     QtCore.QSettings.UserScope, "companyName", "appName").fileName()
>>
>> E.g.:
>> Outside the host application I get what I want:
>>
>>     /Users/frank/.config/companyName/appName.ini
>>
>> But the return value is a completely different inside the host app and
>> actually points to the host app's internal file structure.
>> Fair enough too I guess.
>>
>> So my question is:
>> How can I use QSettings to determine support paths etc while making
>> sure that I don't accidentally mess with the host applications QSettings?
>>
>> Cheers,
>> frank

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 862 bytes
Desc: OpenPGP digital signature
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20170202/63da73de/attachment.sig>


More information about the Interest mailing list