J'étais en train de penser à ce sujet il y a quelques jours, et je suis venu à la conclusion de différentes solutions, chacune avec son propre commerce-off, à savoir:
L'avantage de cette solution serait qu'il est vraiment facile à mettre en œuvre. L'inconvénient est que si la variable d'environnement est définie à autre chose, cette solution est totalement fiable alors.
#include<QString>#include<QDebug>int main(){QString name = qgetenv("USER");if(name.isEmpty())
name = qgetenv("USERNAME");
qDebug()<< name;return0;}
L'avantage, c'est qu'il est relativement facile à mettre en œuvre, mais encore une fois, il peut aller à peu fiables facilement car elle est valable pour une utilisation autre nom d'utilisateur et "entrée" dans l'accueil de l'utilisateur de l'emplacement.
Exécuter des processus externes et l'utilisation de la plate-forme Api
C'est probablement le plus difficile à mettre en œuvre, mais d'un autre côté, ce qui semble être la plus fiable car elle ne peut pas être modifiée en vertu de l'application si facilement comme avec la variable d'environnement ou de l'emplacement du domicile astuces. Sur Linux, vous pouvez utiliser QProcess d'invoquer l'habitude commande whoami, et sur Windows, vous pouvez utiliser le GetUserName WinAPI à cette fin.
Résumé: je serais personnellement aller pour la dernière variante étant donné que, même si elle est la plus difficile à mettre en œuvre, qui est le plus fiable.
votre premier "si" avec des majuscules. Je n'ai pas downvote, j'ai essayé de le modifier, mais c'était un trop court d'un montage et des forces spéciales n'ont pas l'accepter. En fait, j'aime votre réponse, je vous remercie. merci, ma réponse a obtenu downvoted à -1 au départ, et je n'arrive pas à comprendre pourquoi quand j'ai mis le plus d'efforts dans la réponse à mon humble avis. C'est un savoir utile pour SORTE que. Merci pour la poser. 🙂 Chapeau bas, plus que je pouvais demander. En raison de la nature de mon programme et le contrôle de l'environnement, il sera exécuté, je vais opter pour la qgetenv option pour sa simplicité. L'option de la maison de l'environnement est, à mon humble avis, pas vraiment une option, puisque la maison est où le coeur est (ou lorsque l'utilisateur définit qu'il soit). Mais pour la qualité de la réponse est définitivement approuvé. Pour l'enregistrement, je n'ai pas testé ni la deuxième, ni la troisième des solutions, mais ils ont sûrement sembler légitime. dans le dernier exemple, le fini() signal malheureusement besoins explicites de résolution de surcharge, mais je vais laisser cela avec le lecteur, comme un doigt de l'exercice. 🙂
Je pense que la meilleure méthode est la suivante :
#include<stdlib.h>
getenv("USER");///for MAc or Linux
getenv("USERNAME");//for windows
EDIT : Vous pouvez utiliser qgetenv au lieu de getenv.
Si j'avais utiliser des variables d'environnement, je pense que je préfère utiliser qgetenv puisque c'est le Qt façon de le faire. non seulement cela, il est aussi peu fiable. Je pense que qgetenv est mieux que getenv trop. 🙂
J'étais en train de penser à ce sujet il y a quelques jours, et je suis venu à la conclusion de différentes solutions, chacune avec son propre commerce-off, à savoir:
Variables d'environnement à l'aide de qgetenv.
L'avantage de cette solution serait qu'il est vraiment facile à mettre en œuvre. L'inconvénient est que si la variable d'environnement est définie à autre chose, cette solution est totalement fiable alors.
Domicile avec QStandardPaths
L'avantage, c'est qu'il est relativement facile à mettre en œuvre, mais encore une fois, il peut aller à peu fiables facilement car elle est valable pour une utilisation autre nom d'utilisateur et "entrée" dans l'accueil de l'utilisateur de l'emplacement.
Exécuter des processus externes et l'utilisation de la plate-forme Api
C'est probablement le plus difficile à mettre en œuvre, mais d'un autre côté, ce qui semble être la plus fiable car elle ne peut pas être modifiée en vertu de l'application si facilement comme avec la variable d'environnement ou de l'emplacement du domicile astuces. Sur Linux, vous pouvez utiliser QProcess d'invoquer l'habitude commande whoami, et sur Windows, vous pouvez utiliser le GetUserName WinAPI à cette fin.
Résumé: je serais personnellement aller pour la dernière variante étant donné que, même si elle est la plus difficile à mettre en œuvre, qui est le plus fiable.
Je n'ai pas downvote, j'ai essayé de le modifier, mais c'était un trop court d'un montage et des forces spéciales n'ont pas l'accepter. En fait, j'aime votre réponse, je vous remercie.
merci, ma réponse a obtenu downvoted à -1 au départ, et je n'arrive pas à comprendre pourquoi quand j'ai mis le plus d'efforts dans la réponse à mon humble avis. C'est un savoir utile pour SORTE que. Merci pour la poser. 🙂
Chapeau bas, plus que je pouvais demander. En raison de la nature de mon programme et le contrôle de l'environnement, il sera exécuté, je vais opter pour la
qgetenv
option pour sa simplicité. L'option de la maison de l'environnement est, à mon humble avis, pas vraiment une option, puisque la maison est où le coeur est (ou lorsque l'utilisateur définit qu'il soit). Mais pour la qualité de la réponse est définitivement approuvé. Pour l'enregistrement, je n'ai pas testé ni la deuxième, ni la troisième des solutions, mais ils ont sûrement sembler légitime.dans le dernier exemple, le fini() signal malheureusement besoins explicites de résolution de surcharge, mais je vais laisser cela avec le lecteur, comme un doigt de l'exercice. 🙂
OriginalL'auteur lpapp
Il n'y a aucun moyen d'obtenir le nom d'utilisateur en cours avec Qt.
Toutefois, vous pouvez lire ce liens :
http://www.qtcentre.org/threads/12965-Get-user-name
http://qt-project.org/forums/viewthread/11951
Je pense que la meilleure méthode est la suivante :
EDIT : Vous pouvez utiliser
qgetenv
au lieu degetenv
.qgetenv
puisque c'est le Qt façon de le faire.non seulement cela, il est aussi peu fiable.
Je pense que
qgetenv
est mieux quegetenv
trop. 🙂OriginalL'auteur jd6
Dans QT5 et il est possible d'effectuer les opérations suivantes :
`QDir::home() renvoie le répertoire home de l'utilisateur.
OriginalL'auteur Flot2011
Il y a un moyen pour récupérer les nom d'utilisateur windows avec Qt. Ici, il est
mainwindow.l'interface utilisateur
C'est la forme de l'interface utilisateur
mainwindow.cpp
De sortie:
Code de sortie
OriginalL'auteur Starlyvil