Qt 学习之旅-----自义定窗口界面

          很多时候根据不同的需要   要将界面根据图片做成各种各样的形状的界面

而界面不能和控件一样  直接用png图做border 无法实现  仍旧是方方正正的  

如何制作自义定的窗口界面呢?  

这要用到QPixmap   图像映射


首先在建立窗口时 

    Dialog *w = new Dialog;

    w->setWindowFlags(Qt::FramelessWindowHint);//去边框

    w->setAttribute(Qt::WA_TranslucentBackground);//背景透明

    w->show();


首先在头文件类中声明


private:

    QPixmap*    backgroundPixmap_;


之后重写 paintEvent

void Dialog::paintEvent(QPaintEvent *)

{

    QPainter painter(this);

    painter.fillRect(0, 0, backgroundPixmap_->width(), backgroundPixmap_->height(), *backgroundPixmap_);

}

然后进行映射

    backgroundPixmap_ = new QPixmap(":/new/prefix1/image/1.png");   //映射资源类图片

    this->resize(backgroundPixmap_->width(), backgroundPixmap_->height());

    this->clearMask();//清除原来的图片信息

    this->setMask(backgroundPixmap_->mask());

    this->update();//更新显示

编译  运行 完成

这样 就可以将窗口根据图片来进行设置了


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值