在項目中經常碰到這種情況,比如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透明,兩個效果都可以 */