近期,我在撰寫一個手機版的手機記事本,在美化上花盡了功夫,特別是QTextEdit設定背景圖上,我使用了setPalette一直無成,根據網上查詢到的,使用了
方法一:設定Brush的方法設定沒有效果,也換過QPalette::Windows、QPalette::Background還是沒有效果;
------------------------------------------------------------------
QPixmap Edbk("://Ico/background.jpg");
QPalette pal = ui->textEdit->palette();
pal.setBrush(QPalette::Base,QBrush(Edbk));
ui->textEdit->setPalette(pal);
方法二:然后嘗試一下,下面的這種方式,先把TextEdit設定透明,在主視窗上貼圖,但是要確定計算好需要貼圖的Rect,還是沒有效果,主要是下面的方式設定透明,沒有效果,
------------------------------------------------------------------
QPalette pal = ui->textEdit->palette();
pal.setColor(QPalette::Base,QColor(255,0,0,0));
ui->textEdit->setPalette(pal);
方法三:理由上面方法二的思路,想辦法設定TextEdit透明,我在網上也找到了下面這種設定透明的方法,想到TextEdit也是繼承QWidget,下面兩種設定透明的函式
------------------------------------------------------------------
ui->textEdit->setWindowOpacity();
ui->textEdit->setAttribute(Qt::WA_TranslucentBackground, true);
苦命啊,都沒有效果!

上述的方法,我嘗試了,都沒有什么效果,也不知道是不是我忽略了什么,有知道的,歡迎評論區,大家一起尋找問題!,
------------------------------------------------------------------
后面我想到能不能使用qss的方法設定透明,最后嘗試了一番,結果果真有效果,
代碼如下
QPainter *p=new QPainter(this);
ui->textEdit->setStyleSheet("background-color: rgb(255, 255, 255,60);");
QImage img(":/Ico/background.png");
QRect re(QPoint(ui->textEdit->geometry().x(),ui->textEdit->geometry().y()),ui->textEdit->size());
p->drawImage(re,img);
結果效果就明顯了!

希望能對各位朋友有所幫助!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/305501.html
標籤:其他
上一篇:TCP通信機制
