Как увеличить количество маркеров в режиме пароля для QLineEdit? - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть QLineEdit, для которого я установил echoMode на QLineEdit::Password следующим образом:

myLineEdit->setEchoMode(QLineEdit::Password);

Пули показаны,но они слишком малы для целей моего приложения:

enter image description here

Мне нужно увеличить их, как это:

enter image description here

Я пытался увеличить размер шрифта, используя следующую таблицу стилей:

myLineEdit->setStyleSheet("QLineEdit { font-size: 20px; }");

Это действительно делает маркеры больше, но текст также увеличивается.

Как увеличить размер маркеров, сохранив размер текста?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы можете установить символ Unicode, который показывает больший круг через lineedit-password-character:

#include <QApplication>
#include <QFormLayout>
#include <QLineEdit>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QWidget w;
    auto lay = new QFormLayout(&w);
    QLineEdit *normal_le = new QLineEdit;
    normal_le->setEchoMode(QLineEdit::Password);
    normal_le->setText("Pass");
    lay->addRow("Normal: ", normal_le);
    for(int i: {9210, 9679, 9899, 11044}){
        QLineEdit *le = new QLineEdit;
        le->setEchoMode(QLineEdit::Password);
        le->setText("Pass");
        le->setStyleSheet(QString("QLineEdit[echoMode=\"2\"]{lineedit-password-character: %1}").arg(i));
        lay->addRow(QString::number(i), le);
    }
    w.show();

    return a.exec();
}

enter image description here

...