QT中设置透明窗体多种方法解决

以下是整理的4中设置透明窗体的方法

(1) Qt::WA_NoSystemBackground, Qt::WA_TranslucentBackground:
          setAutoFillBackground(false);  //这个不设置的话就背景变黑  
          setWindowFlags(Qt::FramelessWindowHint);  
          setAttribute(Qt::WA_TranslucentBackground,true); 


(2) setWindowOpacity(1);  //0是全透明,1是不透明  窗口及其上面的控件都半透明:


(3) setStyleSheet("background-color:transparent;");  样式表设置透明


(4) QPalette pal = palette();   
          pal.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));   
         setPalette(pal);  窗口整体透明,但窗口控件不透明,QLabel控件只是字显示,控件背景色透明;
         窗体客户区完全透明

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt ,可以通过使用布局管理器来实现窗体组件随着窗体大小的自动变化。常用的布局管理器有 QHBoxLayout,QVBoxLayout,QGridLayout 等。这些布局管理器可以将窗体的组件进行自动布局,并根据窗体大小变化自动调整组件大小和位置,从而适应不同的屏幕大小和分辨率。可以通过以下步骤来设置窗体组件随着窗体大小变化自动变化: 1. 在窗体添加布局管理器,并将组件添加到布局。 2. 设置组件的 sizePolicy 为 QSizePolicy::Expanding,以便组件能够在布局自动扩展和收缩。 3. 在窗体重写 resizeEvent() 函数,以便在窗体大小变化时及时更新组件的大小和位置。 例如,以下代码演示了如何使用 QHBoxLayout 和 QVBoxLayout 来实现窗体组件自动布局和自动调整大小: ``` // 创建水平布局管理器 QHBoxLayout *hLayout = new QHBoxLayout(); // 创建垂直布局管理器 QVBoxLayout *vLayout = new QVBoxLayout(); // 创建组件 QPushButton *btn1 = new QPushButton("Button 1"); QPushButton *btn2 = new QPushButton("Button 2"); QTextEdit *textEdit = new QTextEdit(); // 将组件添加到布局 hLayout->addWidget(btn1); hLayout->addWidget(btn2); vLayout->addLayout(hLayout); vLayout->addWidget(textEdit); // 设置组件的 sizePolicy btn1->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); btn2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); textEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); // 在窗体设置布局管理器 setLayout(vLayout); // 重写 resizeEvent() 函数 void MyWindow::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); // 更新布局的组件大小和位置 hLayout->setGeometry(rect()); vLayout->setGeometry(rect()); } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值