Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- QCustomLineEdit::QCustomLineEdit(QWidget *parent) :
- QLineEdit(parent)
- {
- connect(this, SIGNAL(textChanged(QString)), this, SLOT(onTextChanged(QString)));
- connect(this, SIGNAL(cursorPositionChanged(int,int)), this, SLOT(onCursorPositionChanged(int,int)));
- setEchoMode(QLineEdit::Password); // Echo mode in your case..
- m_echoMode = echoMode(); // Member variable to store original echo mode..
- m_placeHolderText = "Password"; // Member variable..
- m_isPlaceHolderActive = true; // Member varible..
- // Default case..
- setPlaceholderText("");
- setStyleSheet("QCustomLineEdit{color: gray;}");
- setEchoMode(QLineEdit::Normal);
- setText(__placeHolderText);
- }
- void QCustomLineEdit::keyPressEvent(QKeyEvent *e)
- {
- if(m_isPlaceHolderActive)
- {
- if(e->key() == Qt::Key_Delete || e->key() == Qt::Key_Backspace)
- e->accept();
- else
- QLineEdit::keyPressEvent(e);
- return;
- }
- QLineEdit::keyPressEvent(e);
- }
- void QCustomLineEdit::onCursorPositionChanged(int /*oldPos*/, int newPos)
- {
- if(m_isPlaceHolderActive)
- {
- if(newPos != 0)
- setCursorPosition(0);
- }
- }
- void QCustomLineEdit::onTextChanged(const QString &text)
- {
- if(m_isPlaceHolderActive)
- {
- if(text.compare(m_placeHolderText) != 0)
- {
- m_isPlaceHolderActive = false;
- // Remove the 'placeHolderText' from 'text' itself..
- QString temp = text;
- temp = temp.mid(0, text.lastIndexOf(m_placeHolderText));
- setStyleSheet("QCustomLineEdit{color: black;}");
- setEchoMode(m_echoMode);
- setText(temp);
- }
- else
- {
- setEchoMode(QLineEdit::Normal);
- setText(m_placeHolderText);
- setStyleSheet("QCustomLineEdit{color: gray;}");
- setCursorPosition(0);
- }
- }
- else
- {
- if(text.isEmpty())
- {
- m_isPlaceHolderActive = true;
- setStyleSheet("QCustomLineEdit{color: gray;}");
- setEchoMode(QLineEdit::Normal);
- setText(m_placeHolderText);
- }
- }
- }
- ui->lineEdit->setPlaceholderText("password");
- ui->lineEdit->setReadOnly(1);
- ui->lineEdit->setText("");
- ui->lineEdit->setEchoMode(QLineEdit::Password);
- ui->lineEdit->setReadOnly(0);
- self.searchEditText = QtGui.QLineEdit()
- self.searchEditText.setPlaceholderText("Search for word")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement