qt改变QLineEdit形状

时间:2014-05-23 12:02:23

标签: c++ qt qwidget qlineedit

我正在尝试使用QLineEdit创建自定义形状QWidget::setMask()。我为子类resizeEvent重新定义了lineEdit

void MyLineEdit::resizeEvent(QResizeEvent *ev)
{
   QPixmap pixmap(":/new/prefix1/region.png");
   setFixedSize(ev->size());
   setMask(pixmap.mask());
   setStyleSheet("background-color : gray");
}

QlineEdit未显示。顺便说一句,它被添加到QGridlayout,我检查了pixmap.isNull() == false,大小正常。 我错过了什么?为什么不显示?

1 个答案:

答案 0 :(得分:1)

您不必将任何子类化。只需使用style sheets

editor->setStyleSheet("QLineEdit  {\n"
                      "    background: url(:/new/prefix1/region.png);\n"
                      "}");

based on documentation

editor->setStyleSheet("QLineEdit  {\n"
                      "    border-image: url(:/new/prefix1/region.png) 3 3 3 3;\n"
                      "}");