0

(使用 Qt 4.8.4)

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

在此处输入图像描述

  1. 左侧图像
  2. 中心街道图像
  3. 右侧图像

我想找到一种方法将 QTLineEdit 的外观替换为此,同时仍保留其中的编辑视觉效果/感觉。这只是我想要替换的框架。

我该怎么做?如果我覆盖paintEvent,则什么都看不到,甚至看不到我键入的内容,甚至看不到闪烁的光标。

4

2 回答 2

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 切割封装了由于内部渐变而无法优雅拉伸的区域。

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

于 2013-04-16T15:51:05.263 回答
0

你有没有尝试过:

  • 创建您自己的CustomLineEdit继承自的类QLineEdit
  • 在构造函数/析构函数中加载/释放你的图片CustomLineEdit
  • 重新实现自己paintEvent()CustomLineEdit
  • 根据paintEvent()需要放置所有图片。
于 2013-04-12T22:04:16.797 回答