Как уменьшить размер кнопки в LineEdit?

Я сделал кнопку X в LineEdit, когда я нажимаю на эту кнопку, LineEdit очищается. Но при моем методе кнопка X выглядит немного большой и не красивой, мне нужно сделать ее меньше. Как я могу это сделать?

введите описание изображения здесь

myLineEdit = new LineEdit;
myLineEdit->setFixedHeight( 25 );
m_clear = m_lineEdit->addAction( QIcon( ":/clearButton" ), QLineEdit::TrailingPosition );

размер clearButton.png составляет 12x12 пикселей, поэтому в этом случае он увеличивается и выглядит не очень красиво, как это.

1 ответ

Решение

Для этого решения предполагается, что в исходном изображении соотношение между размером переднего плана и фоном составляет 1: 1 (это нормально для значков), поэтому решение состоит в том, чтобы увеличить это соотношение, для этого мы создаем новое изображение

QPixmap in(":/clearButton");
QPixmap out(in.size()*10/7);
QRect r= in.rect();
r.moveCenter(out.rect().center());
out.fill(Qt::transparent);

QPainter painter(&out);
painter.drawPixmap(r , in);
painter.end();

QLineEdit *m_lineEdit = new QLineEdit;
m_lineEdit->setFixedHeight(25);
m_lineEdit->addAction(QIcon(out), QLineEdit::TrailingPosition);

До:

После:

Другие вопросы по тегам