1

我在 LineEdit 中制作了 X 按钮,当我点击这个按钮时,LineEdit 是清晰的。但是用我的方法,X按钮看起来有点大而且不漂亮,我需要把它变小。我该怎么做?

在此处输入图像描述

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

clearButton.png 的大小是 12x12 px,所以在这种情况下它被放大了,看起来并不漂亮。

4

1 回答 1

4

对于这个解决方案,假设在原始图像中前景大小和背景之间的关系是 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);

前:

在此处输入图像描述

后:

在此处输入图像描述

于 2018-08-02T10:10:48.900 回答