6
votes

Masquer le texte QLineDit

J'utilise pyqt4 qlineDit widget pour accepter le mot de passe. Il existe une propriété setmasking , mais ne suivant pas comment définir le caractère de masquage.


0 commentaires

5 Réponses :


8
votes

Il n'y a pas de Setmasking Propriété pour QLineDIT dans pyqt4 ou qt4. Parlez-vous de SetInputmask () ? Si vous êtes, cela ne fait pas ce que vous semblez penser que cela fait. Il définit le masque contre lequel valider l'entrée.

Pour obtenir le contrôle pour masquer ce qui est saisi, utilisez le < Code> Setechomode () Méthode, qui (devrait) afficher le caractère de protection par mot de passe standard pour la plate-forme. D'après ce que je peux voir de la documentation, si vous souhaitez afficher un caractère personnalisé, vous devrez dériver une nouvelle classe. En général, cependant, c'est une mauvaise idée, car il va à l'encontre de ce que les utilisateurs attendent voir.


0 commentaires

3
votes

C'est assez facile en utilisant QT: vous auriez besoin de définir un nouveau style et de retourner un nouveau caractère à partir de la méthode Stylehint chaque fois que Qstyle: SH_LineDit_PasswordSharacter Constant est interrogé. Ci-dessous est un exemple:

class LineEditStyle : public QProxyStyle
{
public:
    LineEditStyle(QStyle *style = 0) : QProxyStyle(style) { }

    int styleHint(StyleHint hint, const QStyleOption * option = 0,
                  const QWidget * widget = 0, QStyleHintReturn * returnData = 0 ) const
    {
        if (hint==QStyle::SH_LineEdit_PasswordCharacter)
            return '%';
        return QProxyStyle::styleHint(hint, option, widget, returnData);
    }
};

lineEdit->setEchoMode(QLineEdit::Password);
lineEdit->setStyle(new LineEditStyle(ui->lineEdit->style()));


0 commentaires

2
votes

Comme Docs disent http: // Doc-Snapshot .qt-project.org / 4.8 / stylesheet-exemples.html # Personnalisation-QLineDit :

Le caractère de mot de passe des modifications de ligne qui ont QLineDitIt :: Mot de passe Mode Echo peut être défini à l'aide de: xxx


0 commentaires

19
votes
editor = QLineEdit()
editor.setEchoMode(QLineEdit.Password)

0 commentaires

2
votes

dans qt concepteur

Sélectionnez la ligne Modifier la ligne et dans la fenêtre Editor em>, il y aura une propriété echomode code> que vous pouvez définir sur mot de passe code>. p>

Utilisation du code Python h3>

Dans ce cas, la réponse de la Terre EM> fonctionnera qui est: p>

myLineEdit.setEchoMode(QLineEdit.Password)


0 commentaires