QT中给各控件增加背景图片(可缩放可旋转)的几种方法

http://blog.csdn.net/liukang325/article/details/44832397

1. 给QPushButton 增加背景图片:背景图片可根据Button大小自由缩放。

[cpp] view plaincopy

  1. void setButtonBackImage(QPushButton *button,QString image,int sizeW, int sizeH)
  2. {
  3. //163,163为原始分辨率,这里稍做了调整。
  4. QPixmap pixmap(image);
  5. QPixmap fitpixmap=pixmap.scaled(163,163).scaled(sizeW, sizeH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
  6. button->setIcon(QIcon(fitpixmap));
  7. button->setIconSize(QSize(sizeW,sizeH));
  8. button->setFlat(true);//就是这句能够实现按钮透明,用png图片时很有用
  9. button->setStyleSheet("border: 0px");//消除边框,取消点击效果
  10. }

2. 给QWidget 增加背景图片:图片可自由缩放。

[cpp] view plaincopy

  1. this->setAutoFillBackground(true);    //Widget增加背景图片时,这句一定要。
  2. QPixmap pixmap(":/images/bg_news.png");
  3. QPixmap fitpixmap=pixmap.scaled(1200, 1200).scaled(config->mainWindowW,config->mainWindowH, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
  4. QPalette palette;
  5. palette.setBrush(QPalette::Background, QBrush(fitpixmap));
  6. this->setPalette(palette);

3. 给QLabel 增加背景图片:图片可自由缩放。

[cpp] view plaincopy

  1. QPixmap pixmap(normalIcon);
  2. QPixmap fitpixmap=pixmap.scaled(labelIcon->width(), labelIcon->height(), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
  3. labelIcon->setPixmap(fitpixmap);

4. 采用QSS样式,增加背景图片,图片显示原始比例。

[cpp] view plaincopy

  1. lastBtn->setStyleSheet("background-image: url(:/images/btn_previous_normal.png);border: 0px");

QPixmap旋转图片:

[cpp] view plaincopy

    1. QMatrix leftmatrix;
    2. leftmatrix.rotate(270);
    3. ui->label->setPixmap(pixmap.transformed(leftmatrix,Qt::SmoothTransformation));
时间: 2024-10-22 02:48:15

QT中给各控件增加背景图片(可缩放可旋转)的几种方法的相关文章

QT中给各控件增加背景图片的几种方法

1. 给QPushButton 增加背景图片:背景图片可根据Button大小自由缩放. void setButtonBackImage(QPushButton *button,QString image,int sizeW, int sizeH) { //163,163为原始分辨率,这里稍做了调整. QPixmap pixmap(image); QPixmap fitpixmap=pixmap.scaled(163,163).scaled(sizeW, sizeH, Qt::IgnoreAspe

在Qt中使用ActiveX控件

Qt的windows商业版本提供了ActiveQt这个framework,使用这个组件我们可以在Qt中使用ActiveX控件,并且也开发基于Qt的ActiveX控件.ActiveQt包含了两个组件QAxContainer和QAxServer. l         QAxContainer允许我们使用COM对象,并且可以将将ActiveX控件嵌入到Qt程序中去. l         QAxServer可以将我们写的Qt控件导出为COM对象或者是ActiveX控件. 第一个例子我们来演示一下在Qt中

代码方式给控件添加背景图片(WPF)

wpf中常常需要给控件添加背景图片,下边以wrapPanel为例,使用代码添加背景图片 WrapPanel xwraPanel = new WrapPanel(); ImageBrush ximgBrush = new ImageBrush(); Uri xuri = new Uri("pack://application:,,,/Images/JXimgs/MeterLayout.png", UriKind.Absolute); //注意这个的写法 ximgBrush.ImageSo

QT 中怎样使得控件与 界面等比例变化

转自:https://github.com/exoticknight/blog-post/blob/master/python-with-Qt-application-development/python%20%C3%97%20Qt%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%20%C2%B7%202%20--%20%E7%95%8C%E9%9D%A2%E5%88%9D%E6%AD%A5%E8%AE%BE%E8%AE%A1.md 之前的一篇可以算是前置知识的快速介绍.

WinForm中按钮等控件的背景渐变色重绘

注:brush通过起止坐标来控制重绘范围及方向.比如从上到下渐变时,brush第二个Point参数是左下角坐标. 1 private void PaintGradientBackground(Button btn) 2 { 3 Bitmap newGradientBackImg = new Bitmap(btn.Width, btn.Height); 4 LinearGradientBrush brush = new LinearGradientBrush(new PointF(0, 0), n

Android中通过WebView控件实现与JavaScript方法相互调用的地图应用

在Android中通过WebView控件,可以实现要加载的页面与Android方法相互调用,我们要实现WebView中的addJavascriptInterface方法,这样html才能调用android方法,在这里我个人觉得有点和DWR相似. 为了让大家容易理解,我写了一个简单的Demo,具体步骤如下: 第一步:新建一个Android工程,命名为WebViewDemo(这里我在assets里定义了一个html页面). 第二步:修改main.xml布局文件,增加了一个WebView控件还有But

Android Studio中Button等控件的Text中字符串默认大写的解决方法

初学Android的时候,在Android Studio中xml里面添加一个Button.EditText等控件后,它的Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是android:textAllCaps, 最后查看了一下Themes.xml文件,找到了一些端倪,发现在设置样式的时候,默认是把所有的字符串显示大写true. 如图,是从android的Style.xml中的截图,   [解决办法] 1. 把xml中你不想大写的控件添加一行 android:text

Qt开发环境中使用报表控件FastReport遇到的一些问题(二)

上一节中谈到的那个问题:传递的变量内容如果是纯英文,报表报错.经笔者反复测试,找到了解决办法:代码中第5行替换为以下 params<<"my_var"<<"\"xyz\""; 在内容前后用\"把内容括起来,在把报表设计器中Code页的语言设置为非PascalScript就好了. Qt开发环境中使用报表控件FastReport遇到的一些问题(二),布布扣,bubuko.com

android 动态背景的实现以及SurfaceView中添加EditText控件

      首先还是一贯作风,我们先看案例: 静态图看不出来效果,如果用过此软件(扎客)的同学们都知道,她的背景会动.怎么样,是不是觉得很时尚,起码比静态的要好(个人观点).其实实现起来并 不复杂,这个如果让做游戏程序员做简直太小儿科了,这里我说明一点,其实我们做应用的也应该多少了解下游戏编程思维,起码对我们做应用有很好的帮助. 下面我简单介绍下实现方式. 实现原理:自定义一个SurfaceView控件.对之不停的onDraw,使得其背景动起来. 对于SurfaceView如果不了解的同学们麻烦