博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
给QTextEdit添加背景图片及注意事项(转)
阅读量:5122 次
发布时间:2019-06-13

本文共 1183 字,大约阅读时间需要 3 分钟。

前一段时间遇到一个很有意思的问题,要给QTextEdit这个Qt空间加一张背景图片,我试过很多方法,用QPalette调色板,paintEvent(),结果都没有效果,后来发现有两种方式可以实现这一点,如下:(如果各位还有更好的办法,请告诉我)

 

QTextEdit* iEdit  = new QTextEdit();

 

1:使用样式表:

     iEdit->setStyleSheet("background-image:url(:/bmp/DSCN1604.JPG)");

 

    注意:在url()括号中首先开始的 “:”冒号一定不能搞错,否则就显示不出来。

 

2:使用html

    iEdit->setHtml("<body   background=/"./bmp/DSCN1604.JPG/"> </body>");

 

    注意:此时就不需要像上边那样用“:”冒号了,直接用相对路径就可以了。

 

(Notice:在使用上两种方法之前,别忘记把图片加到qrc资源文件中哦)

//-------------------------------------------------------------------------------------------------------------------------------------------------

 

  上述两种方法其实显示效果都是一样的,所以用哪个都差不多,但是他们都存在两个问题:

 

问题一:图片无法缩放以与编辑框大小相符,毕竟这里用的是图片的路劲,我们没法对其进行一些缩放操作。所以最好在使用之前就先让编辑框大小和图片大小设置为一样!

 

问题二:这个比较严重。

   当我们写的文字超过一屏时:编辑框需要翻页,此时你会发现:图片也会跟着翻页。

 

如下:我在编辑框中放了一张背景图片:

                                  

    我当然希望这张图片一直固定在该编辑框后边,而不会翻动,但是如果我用上边的方法给设置一个背景图片的话,当写的字多于一屏幕时候:图片也会跟着翻屏,从而可能出现如下情况:

                                 

 

亦即:图片也会平铺的多次刷在编辑框后边,这显然不是我们希望的效果。

 

===》我曾尝试解决这一问题,但是没找到好的办法,最后只好用了个“委屈求全”的方式,亦即:我把编辑框设置为透明,从而可以透过它看到它后边的widget窗口,而后我在这个widget的该位置处刷上这幅图片即可! 用这种方法效果还是不错的!!

 

使QTextEdit背景透明的方法,详见文章:

 

 

可以在stylesheet里面使用这个选项 background-attachment: fixed; background-clip: padding

这样就不会图片就不会随着滚动了

转载于:https://www.cnblogs.com/qq78292959/archive/2012/08/19/2646188.html

你可能感兴趣的文章
2016.3.31考试心得
查看>>
mmap和MappedByteBuffer
查看>>
STM32单片机使用注意事项
查看>>
swing入门教程
查看>>
好莱坞十大导演排名及其代表作,你看过多少?
查看>>
Loj #139
查看>>
hihocoder1187 Divisors
查看>>
Azure 托管镜像和非托管镜像对比
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
前端监控
查看>>
clipboard.js使用方法
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
伪类与超链接
查看>>
centos 7 redis-4.0.11 主从
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>