请问在使窗口透明之后,怎么取消透明设置

在执行
this->setAttribute(Qt::WA_TranslucentBackground);
this->setWindowOpacity(1);
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::X11BypassWindowManagerHint);
使窗口透明了,怎么才能取消这个透明设置呢

c++

2个回答

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

this->setAttribute(Qt::WA_TranslucentBackground);
this->setWindowOpacity(1);
this->setWindowFlags(Qt::FramelessWindowHint|Qt::Tool | Qt::X11BypassWindowManagerHint);

}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
//即使不撤销这个attribute,也可以
// this->setAttribute(Qt::WA_TranslucentBackground,false);

this->centralWidget()->setAutoFillBackground(true);
this->statusBar()->setAutoFillBackground(true);

this->update();

}

试一下这样

qq_34305316
H&A 回复qq_38200996: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->setAttribute(Qt::WA_TranslucentBackground); this->setWindowOpacity(1); this->setWindowFlags(Qt::FramelessWindowHint|Qt::Tool | Qt::X11BypassWindowManagerHint); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { //即使不撤销这个attribute,也可以 // this->setAttribute(Qt::WA_TranslucentBackground,false); this->centralWidget()->setAutoFillBackground(true); this->statusBar()->setAutoFillBackground(true); this->update(); }
6 个月之前 回复
qq_38200996
qq_38200996 谢谢啦,已经试过但是无效。。。
6 个月之前 回复

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);

this->setAttribute(Qt::WA_WState_WindowOpacitySet,true);
this->setWindowOpacity(0.8);
this->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool | Qt::X11BypassWindowManagerHint);

}

MainWindow::~MainWindow()
{
delete ui;
}

void MainWindow::on_pushButton_clicked()
{
qDebug() << "Opacity";
this->setWindowOpacity(1.0);
}
改成这样试试。

qtchen_1988
qtchen_1988 回复qq_38200996: 你的第一行代码要改成:this->setAttribute(Qt::WA_WState_WindowOpacitySet,true);
6 个月之前 回复
qq_38200996
qq_38200996 谢谢,试了一下发现this->setWindowOpacity()里设置成几都没有影响, 但是又必须设置一下这个数。想取消透明不成功
6 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!