Sto usando il widget PyQt4 QLineEdit per accettare la password. Esiste una proprietà setMasking, ma non segue come impostare il carattere di mascheramento.Masking QLineModifica testo
risposta
Non esiste la proprietà setMasking
per QLineEdit
in PyQt4 o Qt4. Stai parlando di setInputMask()
? Se lo sei, questo non fa quello che pensi di fare. Imposta la maschera su cui convalidare l'input.
Per ottenere il controllo per nascondere ciò che viene digitato, utilizzare il metodo setEchoMode()
, che visualizzerà (dovrebbe) il carattere di occultamento della password standard per la piattaforma. Da quello che posso vedere dalla documentazione, se vuoi che un personaggio personalizzato venga visualizzato, dovrai ricavarne una nuova classe. In generale, tuttavia, questa è una cattiva idea, poiché va contro ciò che gli utenti si aspettano di vedere.
È abbastanza semplice utilizzare Qt: è necessario definire un nuovo stile e restituire un nuovo carattere dal metodo styleHint ogniqualvolta viene interrogata la costante QStyle :: SH_LineEdit_PasswordCharacter. Di seguito è un esempio:
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()));
ora il problema è che pyqt non sembra sapere nulla su QProxyStyle; sembra non essere avvolto lì, quindi sei bloccato, a meno che tu non voglia avvolgerlo da solo.
riguarda
Come dicono docs http://doc-snapshot.qt-project.org/4.8/stylesheet-examples.html#customizing-qlineedit:
Il carattere della password di modifiche di linea che hanno QLineEdit :: modalità eco password può essere impostata usando:
QLineEdit[echoMode="2"] {
lineedit-password-character: 9679;
}
editor = QLineEdit()
editor.setEchoMode(QLineEdit.Password)
- 1. QLineModifica impostazione larghezza visibile?
- 2. iOS SDK - Image masking
- 3. Masking a CALayer - iPhone
- 4. masking a UIImage
- 5. Masking dei dati sensibili configurabili tramite log4net
- 6. Masking a Drawable/Bitmap su Android
- 7. Nginx URL masking su un dominio diverso
- 8. Masking un CALayer con un altro CALayer
- 9. jQuery zip masking per più formati
- 10. Domain Name Forwarding With Masking Breaking Viewport
- 11. Masking parte di un tracciato di contorno in matplotlib
- 12. Unity UI Masking non funziona su Galaxy Note e Kindle Fire
- 13. Testo bianco nel testo sublime
- 14. Disattiva la selezione del testo nell'area testo
- 15. riassumere il testo o semplificare il testo
- 16. evidenzia tutto il testo nell'area testo
- 17. Word-Wrap Android Testo del testo EditText
- 18. stampare solo testo rigetti proprietà del testo
- 19. Inizia con testo nascosto, mostra testo onclick
- 20. Android modalità testo testo in senso verticale
- 21. Console.ReadLine ("Testo modificabile testo predefinito in linea")
- 22. Modalità testo pulsante di chiusura colore testo
- 23. Solo testo di testo in cirillico
- 24. Ottenere testo da asp: casella di testo
- 25. Testo di dissolvenza Jquery all'interno di una casella di testo e area di testo
- 26. Linkify Android testo - Testo Spannable nel singolo testo View - Come come Twitter Tweet
- 27. Come eliminare (testo desiderato), eliminare (testo indesiderato) e incollare (testo desiderato) in Vim
- 28. JasperReport - avvolge il testo per mostrare il testo lungo nel campo di testo
- 29. Come ottenere il testo esatto da Modifica testo e impostare in visualizzazione testo in Android
- 30. Deseleziona il testo in una casella di testo