Tôi đang sử dụng tiện ích PyQt4 QLineEdit để chấp nhận mật khẩu. Có một thuộc tính setMasking, nhưng không làm theo cách đặt ký tự mặt nạ.Mặt nạ QLineEdit văn bản
Trả lời
Không có tài sản setMasking
cho QLineEdit
trong cả PyQt4 hoặc Qt4. Bạn đang nói về setInputMask()
? Nếu bạn đang có, điều này không làm những gì bạn dường như nghĩ rằng nó. Nó đặt mặt nạ chống lại để xác thực đầu vào.
Để có điều khiển ẩn nội dung được nhập, hãy sử dụng phương thức setEchoMode()
, sẽ (hiển thị) hiển thị ký tự ẩn mật khẩu chuẩn cho nền tảng. Từ những gì tôi có thể nhìn thấy từ tài liệu, nếu bạn muốn một ký tự tùy chỉnh được hiển thị, bạn sẽ cần phải lấy được một lớp mới. Nói chung tuy nhiên, đây là một ý tưởng tồi, vì nó đi ngược lại những gì người dùng mong đợi để xem.
Khá dễ dàng khi sử dụng Qt: bạn cần định nghĩa kiểu mới và trả về ký tự mới từ phương thức styleHint bất cứ khi nào hằng số QStyle :: SH_LineEdit_PasswordCharacter được truy vấn. Dưới đây là ví dụ:
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()));
bây giờ vấn đề là pyqt dường như không biết gì về QProxyStyle; nó dường như không được bao bọc ở đó, vì vậy bạn đang bị mắc kẹt, trừ khi bạn sẽ muốn quấn nó cho mình.
liên quan
Như tài liệu nói http://doc-snapshot.qt-project.org/4.8/stylesheet-examples.html#customizing-qlineedit:
Nhân vật mật khẩu của chỉnh sửa dòng có QLineEdit :: chế độ vang Mật khẩu có thể được thiết lập sử dụng:
QLineEdit[echoMode="2"] {
lineedit-password-character: 9679;
}
editor = QLineEdit()
editor.setEchoMode(QLineEdit.Password)
- 1. Mặt nạ hộp văn bản của Win Forms
- 2. nếu (mặt nạ & VALUE) hoặc nếu ((mặt nạ & VALUE) == VALUE)?
- 3. WPF Chỉnh sửa mặt nạ
- 4. Mặt nạ mạng và mặt nạ mạng WiFi của iPhone
- 5. đeo mặt nạ UIImage
- 6. OpenCV bitwise_and + mặt nạ
- 7. Imagick: soạn với mặt nạ
- 8. Mặt nạ hình ảnh có văn bản có thể chọn với SVG - có thể?
- 9. Tôi có thể tìm Hộp văn bản đeo mặt nạ miễn phí trong WPF ở đâu?
- 10. Cách áp dụng mặt nạ alpha động cho Văn bản trên Android
- 11. Mặt nạ bitfield trong C
- 12. Mặt nạ dốc trên UIView
- 13. OpenCV: Đảo ngược mặt nạ?
- 14. Bit mặt nạ bằng Python
- 15. Thêm mặt nạ với CALayers
- 16. Mặt nạ đảo ngược iOS trong drawRect
- 17. Nhận UIBezierpath từ mặt nạ một UIImage
- 18. iOS: Tạo một mặt nạ thả xuống một mặt
- 19. Mặt nạ CSS trong Internet Explorer 10
- 20. CSS3 moz-mặt nạ hỗ trợ
- 21. SciPy Tạo Mặt nạ đa giác 2D
- 22. Stroke đeo mặt nạ CALayer trong iOS
- 23. Mặt nạ không hoạt động trong Gecko
- 24. Áp dụng "mặt nạ" cho một chuỗi
- 25. iOS: Mặt nạ UIImage bằng UIBezierPath
- 26. Android: tải bitmap mặt nạ alpha
- 27. Cách sử dụng mặt nạ với QPainter?
- 28. Mặt nạ trong khung WebSocket là gì?
- 29. Có một tham chiếu cho mặt nạ của MaskEdit không?
- 30. Cần có mặt nạ ngày tùy thuộc vào văn hóa trong các trang jquery