关于Qt5.14,设置QTextEdit添加背景图问题

Posted Jlik学长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Qt5.14,设置QTextEdit添加背景图问题相关的知识,希望对你有一定的参考价值。

近期,我在编写一个手机版的手机记事本,在美化上花尽了功夫,特别是QTextEdit设置背景图上,我使用了setPalette一直无成,根据网上查询到的,使用了

方法一:设置Brush的方法设置没有效果,也换过QPalette::Windows、QPalette::Background还是没有效果;

------------------------------------------------------------------

QPixmap Edbk("://Ico/background.jpg");

QPalette pal = ui->textEdit->palette();

pal.setBrush(QPalette::Base,QBrush(Edbk));

ui->textEdit->setPalette(pal);

方法二:然后尝试一下,下面的这种方式,先把TextEdit设置透明,在主窗口上贴图,但是要确定计算好需要贴图的Rect,还是没有效果,主要是下面的方式设置透明,没有效果。

------------------------------------------------------------------

QPalette pal = ui->textEdit->palette();

pal.setColor(QPalette::Base,QColor(255,0,0,0));

ui->textEdit->setPalette(pal);

方法三:理由上面方法二的思路,想办法设置TextEdit透明,我在网上也找到了下面这种设置透明的方法,想到TextEdit也是继承QWidget,下面两种设置透明的函数

------------------------------------------------------------------

ui->textEdit->setWindowOpacity();

ui->textEdit->setAttribute(Qt::WA_TranslucentBackground, true);

苦命啊,都没有效果!

上述的方法,我尝试了,都没有什么效果,也不知道是不是我忽略了什么,有知道的,欢迎评论区,大家一起寻找问题!。

------------------------------------------------------------------

后面我想到能不能使用qss的方法设置透明,最后尝试了一番,结果果真有效果。

代码如下

QPainter *p=new QPainter(this);
    ui->textEdit->setStyleSheet("background-color: rgb(255, 255, 255,60);");
    QImage img(":/Ico/background.png");
    QRect re(QPoint(ui->textEdit->geometry().x(),ui->textEdit->geometry().y()),ui->textEdit->size());
    p->drawImage(re,img);

结果效果就明显了!

希望能对各位朋友有所帮助!

以上是关于关于Qt5.14,设置QTextEdit添加背景图问题的主要内容,如果未能解决你的问题,请参考以下文章

QTextEdit中选中文本修改字体与颜色,全部文本修改字体与颜色(设置调色板的前景色背景色文字颜色以及基色)

如何在不使用当前段落样式的情况下附加到 QTextEdit

无法在 Pyqt5 中更改 qtextedit 的背景边框,有啥建议吗?

关于CSS怎么设置滚动背景图

怎么为QT中的TextEdit添加背景,或改透明度

插入 QTextEdit 的 HTML 不符合样式表