QT之控件疊加顯示

在項目中經常碰到這種情況,比如UI上的同一個區域既要顯示圖片又要顯示文字時,但是一個label只能顯示其中一個,這個時候就需要兩個label疊加顯示了,比如下面一個顯示圖片,上面一個顯示文字。本文以label疊加顯示爲例,詳細介紹一下控件疊加的方法:

1. 新建一個帶ui的工程,在ui上拖上一個QFrame控件,再往QFrame控件中拖放一個QLabel控件,右鍵設置QFrame控件的佈局爲水平佈局,如圖所示:

接着修改佈局的屬性,如圖所示:

 

點擊保存,回到工程所在文件路徑,右鍵記事本打開mainwindow.ui文件

找到QFrame,將其手動修改爲QLabel

修改前:

修改後:

 

點擊保存,打開Qt,會提示你文件已改變,直接 Yes and All 即可,改變後的ui如下,重點看圈住的部分,可以看到已經有了兩個Label並且時疊加顯示的,修改一下stylesheet讓其顯示的更直觀

修改後:

這樣就可以了,其他控件方法類似 

2020.01.17更新

設置頂層Label透明

    ui->frame->setText("error type:red error");
    ui->frame->setAlignment(Qt::AlignBottom|Qt::AlignHCenter);
    ui->label->setText("1");
    ui->label->setAlignment(Qt::AlignCenter|Qt::AlignHCenter);
    ui->label->setStyleSheet("QLabel{font-size:90px;}");
    ui->label->setAttribute(Qt::WA_TranslucentBackground);
    //ui->label->setStyleSheet("background:transparent"); /* 設置頂層label透明,兩個效果都可以 */

發佈了21 篇原創文章 · 獲贊 8 · 訪問量 5069
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章