QT学习之路————QT界面的美化

1、隐藏窗口的标题栏(包括最小化、最大化、关闭按钮)

只需要在构造函数中添加    setWindowFlags(Qt::FramelessWindowHint);  函数即可

2、给按钮添加背景图片

ui->pushButton->setStyleSheet("border-image:url(me.png)");

3、给界面添加背景图片

this->setObjectName("dialog");    //这句话一定要有,不然,整个界面上的控件背景都跟界面背景一样
this->setStyleSheet("QDialog#dialog{border-image:url(me.png)}");
(PS:这个方法对于QWidget类不好使,我也不知道为什么)

4、满屏显示应用程序

this->showFullScreen();

5、将带有背景图片的qt程序移植到开发板

其实很简单,就是在开发板上把图片跟执行文件放一起就可以了,不过是要用png格式的图片,我用JPG格式的显示不了,不知道其他格式的行不行,我还没有试过

6、制作不规则Button

(1)首先添加头文件:#include<QBitmap>
(2)在构造函数内编辑Button
    QPixmap pix;
    pix.load("chinaz1.png");
    ui->pushButton->setFixedSize(pix.size());
    ui->pushButton->setMask(pix.mask());
    ui->pushButton->setStyleSheet("border-image:url(chinaz1.png)");

(3)其实Mask就像一个面具,它能遮盖原来Button的样子,并让它显示不同的面貌,从而实现一些图片或动态图的显示

7、制作不规则窗口

(1)首先添加头文件:#include<QPainter>和#include<QBitmap>
(2)在头文件中定义公有变量:QPixmap pix
(3)在private中声明函数:void paintEvent(QPaintEvent *e);
(4)在构造函数中添加如下代码:    

   this->setWindowFlags(Qt::FramelessWindowHint|Qt::WindowMinimizeButtonHint); //隐藏标题栏
   this->setAttribute(Qt::WA_TranslucentBackground);   //让窗体实现透明
   pix.load("123.png");
   this->resize(pix.size());  //让窗口的大小跟你的图片大小一样

(5)重写paintEvent(QPaintEvent *e)函数

  void Gigdialog::paintEvent(QPaintEvent *e)
  {
      QPainter painter(this);
      painter.drawPixmap(0,0,pix);
  }

(6)这样就可以重绘窗口,不规则窗口就可以出现啦

猜你喜欢

转载自blog.csdn.net/huangan_xixi/article/details/50878046