溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Qt中QLabel怎么用

發(fā)布時間:2021-11-23 09:46:49 來源:億速云 閱讀:281 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)Qt中QLabel怎么用的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

主要成員函數(shù):

1.void setText(QString); //設(shè)置label框內(nèi)的文本. 
2.void hide(); //隱藏label框. 
3.void setBuddy(QWidget*); //把另一個部件設(shè)為label框的伙伴,方便快捷使用. 
4.void clear(); //清空label框內(nèi)所有內(nèi)容. 
5.void setPixmap(QPixmap(QString)); //設(shè)置圖片. 
6.void setMovie(QMovie*); //設(shè)置電影. 
7.void setScaledContents(bool); //設(shè)置是否按比例填充滿整個label框(非常重要) 
8.void setToolTip(QString); //設(shè)置信息提示,鼠標放在label框上面會自動跳出文字. 
9.void setToolTipDuration(int); //設(shè)置信息提示的持續(xù)時間,單位是毫秒. 
10.void setAlignment(Qt::Alignment); //設(shè)置label框的對齊格式. 
11.void setStyleSheet(QString); //設(shè)置label框的樣式.


根據(jù)上面的QLabel的用法,下面有個關(guān)于QLabel的程序代碼示例: 
下面是程序運行后的情況: 
Qt中QLabel怎么用

Qt中QLabel怎么用


首先進行通過Qt設(shè)計師進行布局: 
Qt中QLabel怎么用

以下是”c.cpp內(nèi)的代碼:”代碼中包含注釋,方便理解.

#include "c.h"c::c(QWidget *parent)
    : QMainWindow(parent)
{    //應用Qt設(shè)計師
    ui.setupUi(this);    //修改標題.
    this->setWindowTitle(QString::fromLocal8Bit("QLabel的程序?qū)嵗?"));    //給QStringList填充進去圖片.
    initPictureList();    //給QMovie對象申請一塊空間.
    movie = new QMovie;    //給兩個QLabel對象設(shè)置新的文本.
    ui.movieLabel->setText(QString::fromLocal8Bit("未顯示電影"));
    ui.pictureLabel->setText(QString::fromLocal8Bit("未顯示圖片"));    //設(shè)置兩個label框的內(nèi)容位于中間.
    ui.movieLabel->setAlignment(Qt::AlignCenter | Qt::AlignHCenter);
    ui.pictureLabel->setAlignment(Qt::AlignCenter | Qt::AlignHCenter);    //初始的時候上一張按鈕時無法點擊的,因為沒有上一張.
    ui.previousPictureButton->setEnabled(false);    //給movieLabel設(shè)置提示框,當鼠標放在label上就會出現(xiàn)文字提示.
    ui.movieLabel->setToolTip(QString::fromLocal8Bit("電影真好看")); 
    //設(shè)置文字提示的持續(xù)時間為5000毫秒,也就是5秒后自動消失.
    ui.movieLabel->setToolTipDuration(1000);    //設(shè)置兩個label框自動填充.
    ui.movieLabel->setScaledContents(true);
    ui.pictureLabel->setScaledContents(true);    //把printLineEdit設(shè)為printLabel的伙伴,這樣的話你按alt+R就會讓光標位于行編輯框內(nèi).注意:設(shè)置label名字的時候要&R.
    ui.printLabel->setBuddy(ui.printLineEdit);    //連接信號與槽.
    connect(ui.startButton, SIGNAL(clicked()), this, SLOT(startMovieLabelSlot()));
    connect(ui.continueButton, SIGNAL(clicked()), this, SLOT(continueMovieLabelSlot()));
    connect(ui.previousPictureButton, SIGNAL(clicked()), this, SLOT(showPreviousPictureSlot()));
    connect(ui.nextPictureButton, SIGNAL(clicked()), this, SLOT(showNextPictureSlot()));
}

c::~c()
{

}//點擊開始按鈕的槽函數(shù).void c::startMovieLabelSlot()
{    //設(shè)置要播放的電影的路徑.注意你要把gif文件放到對應的exe程序下.
    movie->setFileName("Movie/0.gif");    //movieLabel應用movie.
    ui.movieLabel->setMovie(movie);    //開始播放
    movie->start();
}//點擊暫停/繼續(xù)按鈕的槽函數(shù).void c::continueMovieLabelSlot()
{    //判斷當前電影的狀態(tài).
    if (movie->state() == QMovie::Running)
    {
        movie->setPaused(true);
        ui.continueButton->setText(QString::fromLocal8Bit("繼續(xù)"));
    }    else if (movie->state() == QMovie::Paused)
    {
        movie->setPaused(false);
        ui.continueButton->setText(QString::fromLocal8Bit("暫停"));
    }
}void c::initPictureList()
{    //把所有照片的路徑都放到QStringList里去.
    for (int i = 0; i < 10; ++i)
    {
        QString path = "Pixmap/" + QString::number(i) + ".jpg";
        pictureList.push_back(path);
    }
}//點擊上一張按鈕的槽函數(shù).void c::showPreviousPictureSlot()
{
    --pictureNumber;
    ui.pictureLabel->setPixmap(QPixmap(pictureList[pictureNumber]));    if (pictureNumber == 0)
    {
        ui.previousPictureButton->setEnabled(false);
    }
    ui.nextPictureButton->setEnabled(true);
}//點擊下一張按鈕的槽函數(shù).void c::showNextPictureSlot()
{    if (ui.pictureLabel->pixmap() != 0)
        ++pictureNumber;
    ui.pictureLabel->setPixmap(QPixmap(pictureList[pictureNumber]));    if (pictureNumber == 9)
    {
        ui.nextPictureButton->setEnabled(false);
    }    if (pictureNumber != 0)
        ui.previousPictureButton->setEnabled(true);
}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107

以下是”c.h”內(nèi)的代碼:

#ifndef C_H#define C_H#include <QtWidgets/QMainWindow>#include "ui_c.h"#include <QMessageBox>#include <QLabel>#include <QPushButton>#include <QMovie>#include <QPixmap>#include <QString>class c : public QMainWindow{
    Q_OBJECTpublic:
    c(QWidget *parent = 0);
    ~c();private slots:    void startMovieLabelSlot();    void continueMovieLabelSlot();    void showPreviousPictureSlot();    void showNextPictureSlot();private:    void initPictureList();
    Ui::cClass ui;
    QMovie *movie;
    QStringList pictureList;    int pictureNumber = 0;
};#endif // C_H1234567891011121314151617181920212223242526272829303132333435

最后是”main.cpp內(nèi)的代碼:”

#include "c.h"#include <QtWidgets/QApplication>int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    c w;
    w.show();    return a.exec();
}1234567891011

感謝各位的閱讀!關(guān)于“Qt中QLabel怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI