zoukankan      html  css  js  c++  java
  • 给QTextEdit添加背景图片及注意事项(转)

    前一段时间遇到一个很有意思的问题,要给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背景透明的方法,详见文章:

    http://blog.csdn.net/NRC_DouNingBo/archive/2010/05/09/5571088.aspx

    可以在stylesheet里面使用这个选项 background-attachment: fixed; background-clip: padding
    这样就不会图片就不会随着滚动了

  • 相关阅读:
    83. Remove Duplicates from Sorted List
    35. Search Insert Position
    96. Unique Binary Search Trees
    94. Binary Tree Inorder Traversal
    117. Populating Next Right Pointers in Each Node II
    116. Populating Next Right Pointers in Each Node
    111. Minimum Depth of Binary Tree
    169. Majority Element
    171. Excel Sheet Column Number
    190. Reverse Bits
  • 原文地址:https://www.cnblogs.com/qq78292959/p/2646188.html
Copyright © 2011-2022 走看看