Qt 按钮透明

QPushButton *bt =new QPushButton(this);

bt->setText("ok");

bt->move(200,100);

bt->setFlat(true);//就是这句能够实现透明,真是意外的发现,希望对一些学习的朋友有点帮助

http://www.oschina.net/code/snippet_54100_627

### 实现 QT按钮背景透明的方法 在 QT 中设置按钮背景为透明可以通过样式表(Stylesheet)的方式实现。如果仅使用 `background: transparent;` 的方法无法生效,则可能是因为未正确处理边框样式的设定。 以下是具体实现方式: #### 方法一:通过样式表设置 可以结合 `border` 和 `background` 属性来实现按钮背景透明的效果。例如: ```css QPushButton { border: none; background: transparent; } ``` 上述代码中,`border: none;` 表示移除默认的边框样式[^1],而 `background: transparent;` 则用于设置背景颜色为透明。 #### 方法二:动态设置样式表 也可以通过编程的方式来动态修改按钮的样式表。例如: ```cpp button->setStyleSheet("QPushButton { border: none; background: transparent; }"); ``` 此代码片段同样实现了去除按钮边框并将其背景设为透明的功能。 #### 方法三:完全隐藏按钮背景 如果希望更彻底地隐藏按钮背景而不依赖于样式表,还可以尝试以下方法: ```cpp button->setAttribute(Qt::WA_TranslucentBackground); button->setWindowFlags(Qt::FramelessWindowHint); ``` 需要注意的是,这种方法适用于某些特定场景下的窗口或控件[^4]。 --- ### 示例代码 下面是一个完整的例子展示如何在一个 Widget 应用程序中创建一个具有透明背景的 QPushButton 控件: ```cpp #include <QApplication> #include <QWidget> #include <QPushButton> #include <QVBoxLayout> int main(int argc, char *argv[]) { QApplication app(argc, argv); QWidget window; QVBoxLayout layout(&window); QPushButton* button = new QPushButton("Transparent Button", &window); button->setStyleSheet("QPushButton { border: none; background: transparent; color: black; }"); layout.addWidget(button); window.show(); return app.exec(); } ``` 在此示例中,按钮的文字颜色被显式指定为黑色 (`color: black`),以便即使背景变为透明后仍能清晰可见。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值