QLineEdit的自定义框架

时间:2013-04-12 21:12:57

标签: qt

(使用Qt 4.8.4)

我想为QLineEdit创建一个自定义框架。一个在photoshop中创建的,我有三个图像(因为它需要拉伸宽度):

enter image description here

  1. 左侧图片
  2. center streetchable image
  3. 右侧图片
  4. 我想找到一种方法来将QTLineEdit的外观替换为此,同时仍保留其内部的编辑视觉效果。这只是我要替换的框架。

    我该如何解决?如果我覆盖paintEvent,则看不到任何内容,甚至是我输入的内容,甚至是闪烁的光标。

2 个答案:

答案 0 :(得分:0)

你试过了吗?

  • 创建自己的CustomLineEdit继承的课程QLineEdit
  • CustomLineEdit
  • 的构造函数/析构函数中加载/释放您的图片
  • paintEvent()自己重新实施CustomLineEdit
  • paintEvent()中根据需要放置所有照片。

答案 1 :(得分:0)

确定。我想我已经钉了它:

我正在为我的QLineEdit对象设置以下样式表:

this->ui->myLineEdit->setStyleSheet("border-image: url(input_bg.png) 5 5 5 5 stretch stretch;border-width: 5px 5px 5px 5px;");

我正在使用“5”,因为在我使用的图像中,每个角落的5x5切割封装了由于渐变内部而不能正常拉伸的区域。

这可以确保当编辑控件的大小可变时,边框可以很好地工作。