精华内容
参与话题
问答
  • Qt入门-QLabel

    万次阅读 2012-07-19 11:23:39
    QLabel是QT界面中的标签类,它从QFrame下继承: class Q_GUI_EXPORT QLabel : public QFrame { Q_OBJECT 定义一个QLable类: QLabel *label = new QLabel(this); 设置它的外观、文字、对齐方式: label->...

        QLabel是QT界面中的标签类,它从QFrame下继承:

    class Q_GUI_EXPORT QLabel : public QFrame
    {
        Q_OBJECT


    定义一个QLable类:

    QLabel *label = new QLabel(this);


    设置它的外观、文字、对齐方式:

     label->setFrameStyle(QFrame::Panel | QFrame::Sunken);
     label->setText("first line\nsecond line");
     label->setAlignment(Qt::AlignBottom | Qt::AlignRight);


    通过使用“&”字符,可以设置控件的快捷键,如:

     QLineEdit* phoneEdit = new QLineEdit(this);
     QLabel* phoneLabel = new QLabel("&Phone:", this);
     phoneLabel->setBuddy(phoneEdit);

     

    则可以通过“ALT+P”激活phoneEdit。


    示例:

    #include <QApplication>
    #include <QMainWindow.h>
    #include <QLabel.h>
    #include <QRect.h>
    #include <QFont.h>
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);
    	QMainWindow *mainWindow = new QMainWindow;
    
    	QLabel *lbl = new QLabel(mainWindow);
    	QFont lbl_font;
    	lbl_font.setPointSize(16);      //设置字体大小
    	lbl->setFont(lbl_font);
    	lbl->setText("Hello World.");
    	lbl->setGeometry(QRect(20, 20, 150, 30)); //设置大小和位置
    	lbl->setFrameStyle(QFrame::Panel | QFrame::Sunken); //设置外观
    
    	mainWindow->resize(200, 100);   //设置主窗体大小
    	mainWindow->setWindowTitle("Qt Test");  //设置主窗体标签
    	mainWindow->show();
    
    	return a.exec();
    }
    


     

    展开全文
  • Qt学习:QLabel的用法及其程序示例

    万次阅读 2017-10-05 12:02:52
    主要成员函数:1.void setText(QString); //设置label框内的文本. 2.void hide(); //隐藏label框. 3.void setBuddy(QWidget*); //把另一个部件

    主要成员函数:

    1.void setText(QString); //设置label框内的文本.
    2.void hide(); //隐藏label框.
    3.void setBuddy(QWidget*); //把另一个部件设为label框的伙伴,方便快捷使用.
    4.void clear(); //清空label框内所有内容.
    5.void setPixmap(QPixmap(QString)); //设置图片.
    6.void setMovie(QMovie*); //设置电影.
    7.void setScaledContents(bool); //设置是否按比例填充满整个label框(非常重要)
    8.void setToolTip(QString); //设置信息提示,鼠标放在label框上面会自动跳出文字.
    9.void setToolTipDuration(int); //设置信息提示的持续时间,单位是毫秒.
    10.void setAlignment(Qt::Alignment); //设置label框的对齐格式.
    11.void setStyleSheet(QString); //设置label框的样式.


    根据上面的QLabel的用法,下面有个关于QLabel的程序代码示例:
    下面是程序运行后的情况:
    这里写图片描述

    这里写图片描述


    首先进行通过Qt设计师进行布局:
    这里写图片描述

    以下是”c.cpp内的代码:”代码中包含注释,方便理解.

    #include "c.h"
    
    c::c(QWidget *parent)
        : QMainWindow(parent)
    {
        //应用Qt设计师
        ui.setupUi(this);
        //修改标题.
        this->setWindowTitle(QString::fromLocal8Bit("QLabel的程序实例:"));
        //给QStringList填充进去图片.
        initPictureList();
        //给QMovie对象申请一块空间.
        movie = new QMovie;
        //给两个QLabel对象设置新的文本.
        ui.movieLabel->setText(QString::fromLocal8Bit("未显示电影"));
        ui.pictureLabel->setText(QString::fromLocal8Bit("未显示图片"));
    
        //设置两个label框的内容位于中间.
        ui.movieLabel->setAlignment(Qt::AlignCenter | Qt::AlignHCenter);
        ui.pictureLabel->setAlignment(Qt::AlignCenter | Qt::AlignHCenter);
    
        //初始的时候上一张按钮时无法点击的,因为没有上一张.
        ui.previousPictureButton->setEnabled(false);
    
        //给movieLabel设置提示框,当鼠标放在label上就会出现文字提示.
        ui.movieLabel->setToolTip(QString::fromLocal8Bit("电影真好看")); 
        //设置文字提示的持续时间为5000毫秒,也就是5秒后自动消失.
        ui.movieLabel->setToolTipDuration(1000);
    
        //设置两个label框自动填充.
        ui.movieLabel->setScaledContents(true);
        ui.pictureLabel->setScaledContents(true);
    
    
        //把printLineEdit设为printLabel的伙伴,这样的话你按alt+R就会让光标位于行编辑框内.注意:设置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()
    {
    
    }
    //点击开始按钮的槽函数.
    void c::startMovieLabelSlot()
    {
        //设置要播放的电影的路径.注意你要把gif文件放到对应的exe程序下.
        movie->setFileName("Movie/0.gif");
        //movieLabel应用movie.
        ui.movieLabel->setMovie(movie);
        //开始播放
        movie->start();
    }
    //点击暂停/继续按钮的槽函数.
    void c::continueMovieLabelSlot()
    {
        //判断当前电影的状态.
        if (movie->state() == QMovie::Running)
        {
            movie->setPaused(true);
            ui.continueButton->setText(QString::fromLocal8Bit("继续"));
        }
        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);
        }
    }
    //点击上一张按钮的槽函数.
    void c::showPreviousPictureSlot()
    {
        --pictureNumber;
        ui.pictureLabel->setPixmap(QPixmap(pictureList[pictureNumber]));
        if (pictureNumber == 0)
        {
            ui.previousPictureButton->setEnabled(false);
        }
        ui.nextPictureButton->setEnabled(true);
    }
    //点击下一张按钮的槽函数.
    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);
    }
    

    以下是”c.h”内的代码:

    #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_OBJECT
    
    public:
        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_H
    

    最后是”main.cpp内的代码:”

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

    关于QMovie类的操作可以去查阅Qt的官方文档进行学习,作一些扩展!

    展开全文
  • Qt 之 QLabel

    万次阅读 多人点赞 2016-03-12 18:01:31
    简述QLabel提供了一个文本或图像的显示,没有提供用户交互功能。一的QLabel可以包含以下任意内容类型: 内容 设置 纯文本 使用setText()设置一个QString 富文本 使用setText()设置一个富文本的QString 图像 ...

    简述

    QLabel提供了一个文本或图像的显示,没有提供用户交互功能。

    一个QLabel可以包含以下任意内容类型:

    内容 设置
    纯文本 使用setText()设置一个QString
    富文本 使用setText()设置一个富文本的QString
    图像 使用setPixmap()设置一个图像
    动画 使用setMovie()设置一个动画
    数字 使用setNum()设置int或double,并转换为纯文本。
    Nothing 空的纯文本,默认的,使用clear()设置

    | 版权声明:一去、二三里,未经博主允许不得转载。

    纯文本

    显示

    这里写图片描述

    首先我们构造一个QLabel对象,其中this为其所在的父窗体。通过调用setText可以为标签设置文本(Hello World),这时标签就可以正常显示出来了。为了显示更佳的效果,我们可以通过调用setStyleSheet来设置样式。color: white-顾名思义,就是为标签设置一个文本色(白色)。

    QLabel *pLabel = new QLabel(this);
    pLabel->setText("Hello World");
    pLabel->setStyleSheet("color: white");

    对齐方式

    默认的标签文本对齐方式为:左对齐、垂直居中,我们可以通过setAlignment来设置,包括:左、上、右、下、居中对齐,一般情况,我们会进行两两组合(水平方向、垂直方向)。

    比如:居中对齐

    setAlignment(Qt::AlignCenter);

    使用样式表来控制(水平居右、垂直居下):

    setStyleSheet("qproperty-alignment: 'AlignBottom | AlignRight';");

    自动换行

    如果文本过长,我们可以采用自动换行的方式来显示。

    setWordWrap(true);

    这里写图片描述

    注意:当使用英文的时候,如果写为类似形式”abcdefghijklmnopqrstuvwxyz”则是不能换行的,why?因为中间没有空格,所以需要写为”abcde fghij klmno pqrst uvwxyz”。

    设置行高

    一般情况下,自动换行之后文本上下行会距离比较近,我们可以通过下面方式来设置行高。

    pLabel->setWordWrap(true);
    QString strText = QStringLiteral("一去二三里,烟村四五家。亭台六七座,八九十枝花。");
    QString strHeightText = "<p style=\"line-height:%1%\">%2<p>";
    strText = strHeightText.arg(150).arg(strText);
    pLabel->setText(strText);

    省略

    如果过长,我们又不想换行,只想把其中一部分省略为…,那么我们可以通过QFontMetrics来实现,这里先不介绍QFontMetrics,感兴趣的童鞋可以先自行研究。

    这里写图片描述

    QString strText = QStringLiteral("一去二三里,烟村四五家。亭台六七座,八九十枝花。");
    QString strElidedText = pLabel->fontMetrics().elidedText(strText, Qt::ElideRight, 200, Qt::TextShowMnemonic);
    pLabel->setText(strElidedText);

    垂直显示

    默认情况下,文本显示方式为水平方向,如果我们需要在垂直方向上显示,需要用一些小技巧来处理。

    这里写图片描述

    QString strText = QStringLiteral("一去二三里,烟村四五家。");
    pLabel->setText(strText.split("", QString::SkipEmptyParts).join("\n"));
    pLabel->setAlignment(Qt::AlignCenter);

    富文本

    我们可以在助手中查找关于Using HTML Markup in Text Widgets的资料,查看Qt支持哪些HTML标记。

    下面我们来写一段HTML代码,O(∩_∩)O哈哈~。。。显示不同颜色的文本以及图片

    这里写图片描述

    QString strHTML = QString("<html> \
                               <head> \
                               <style> \
                               font{color:white;} #f{font-size:18px; color: green;} \
                               </style> \
                               </head> \
                               <body>\
                               <font>%1</font><font id=\"f\">%2</font> \
                               <br/><br/> \
                               <img src=\":/Images/logo\" width=\"100\" height=\"100\"> \
                               </body> \
                               </html>").arg("I am a ").arg("Qter");
    pLabel->setText(strHTML);
    pLabel->setAlignment(Qt::AlignCenter);

    是不是很神奇?经常我们要用好几个控件来组合才能实现的功能,就仅仅几行HTML代码就搞定了。。。何乐而不为!

    图像

    首先我们构建一个QPixmap来作为显示的图片,然后设置标签的大小,可以通过setScaledContents按比例缩放图片达到理想的效果。

    这里写图片描述

    QPixmap pixmap(":/Images/logo");
    pLabel->setPixmap(pixmap);
    pLabel->setFixedSize(100, 100);
    pLabel->setScaledContents(true);

    动画

    这里我们需要使用另外一个类QMovie来控制动画,start()可以进行播放与stop()则可以停止,也可以通过调用setSpeed()来设置动画的播放速度。

    这里写图片描述

    QMovie *pMovie = new QMovie(":/Images/movie");
    pLabel->setMovie(pMovie);
    pLabel->setFixedSize(135, 200);
    pLabel->setScaledContents(true);
    pMovie->start();

    数字

    如果我们需要显示一个数字,则可以调用setNum(),他可以将内容转换为纯文本。

    pLabel->setNum(66.6);

    很简单就一段代码,我们可以打开源码瞅瞅,究竟setNum是如何实现的。

    void QLabel::setNum(int num)
    {
        QString str;
        str.setNum(num);
        setText(str);
    }

    就三行代码,呵呵哒。。。超简单吧,我们要有一颗随时看源码的心!

    超链接

    我们需要简单使用标签<a></a>写一段简单的HTML超链接代码

    方法一

    比较简单,直接调用setOpenExternalLinks(true)即可。

    pLabel->setText(QString("<a href = \"%1\">%2</a>").arg("http://blog.csdn.net/liang19890820").arg(QStringLiteral("一去丶二三里")));
    pLabel->setOpenExternalLinks(true);

    方法二

    声明一个槽openUrl,将其与linkActivated信号关联。

    pLabel->setText(QString("<a href = \"%1\">%2</a>").arg("http://blog.csdn.net/liang19890820").arg(QStringLiteral("一去丶二三里")));
    connect(pLabel, SIGNAL(linkActivated(QString)), this, SLOT(openUrl(QString)));
    
    void MainWindow::openUrl(const QString &link)
    {
        QDesktopServices::openUrl(QUrl(link));
    }

    总结

    通过上面的学习,我们基本将标签的大部分用法都分享了,可以看出HTML、CSS的重要性,所以无论你现在所从事的工作是什么,或者以后做什么,我都建议好好研究下Web,技多不压身。。。上面的内容虽多,但都很简单,也很重要,所以都需要掌握,我们不只是Qter,我们更是工匠-精益求精、严谨、耐心,专注,坚持。

    展开全文
  • Qt学习笔记(一)通过QLabel显示图片

    万次阅读 2018-03-05 23:16:00
    一、创建widget工程picture_label,基类为widget,添加UI;二、 1,添加资源文件:工程picture_label右键添加新文件-&gt;Qt-&gt;soursefile,命名为picture 2,添加前缀/new/label,添加文件,从路径中...

    一、创建widget工程picture_label,基类为widget,添加UI;

    二、

        1,添加资源文件:工程picture_label右键添加新文件->Qt->soursefile,命名为picture

        2,添加前缀/new/label,添加文件,从路径中选择。(注:应该将图片文件命名为英文,且在工程文件夹中新建一个img文件夹,图片放入其中)

        注(重要):开始的时候添加图片之后一直不能在qrc文件下显示一个new/label文件夹,双击也没用,也找不出问题,后来发现添加完资源文件后应该Ctrl+s保存一下才能正确显示,在这一步竟然错了两次!


    此时如图所示

    //picture_label.cpp
    #include "picture_label.h"
    #include "ui_picture_label.h"
    
    picture_label::picture_label(QWidget *parent) :
        QWidget(parent),
        ui(new Ui::picture_label)
    {
        ui->setupUi(this);
       label1=new QLabel(); //初始化
        QImage *img=new QImage; //新建一个image对象
    
        img->load(":/new/label/img/wholeBody.jpg"); //将图像资源载入对象img,注意路径,可点进图片右键复制路径
        ui->label1->setPixmap(QPixmap::fromImage(*img)); //将图片放入label,使用setPixmap,注意指针*img
    }
    
    picture_label::~picture_label()
    {
        delete ui;
    }
    
    头文件中添加#include<QLabel>

    三、ui界面设置

        此时图片虽然已经在标签上,但运行时只有一个小标签,里面是小半块图片。

    (1)要使界面有滑动条,可以显示完整个图片,则在ui中添加Scroll Area控件,将label放入该控件,两者使用栅格布局,即label填满scroll area.

    (2)要使图片label充满整个窗体,则将scroll area与剩余部分进行栅格布局。


    参考该网友做法(我没力气截图了): http://blog.csdn.net/lyc_daniel/article/details/8748106 

    我的效果如下图:


    以上~



    展开全文
  • qlabel 详解

    千次阅读 2016-03-06 22:32:48
    qlabel提供一个文本和图片显示,包含以下类型:: Content Setting Plain text Pass a QString to setText(). Rich text Pass a QString that contains rich text to setText(). A pixmap Pass a QPixmap to ...
  • -1、 QWidget类 QWidget叫做“基础窗口控件”,这个类是所有用户界面的基类,所有的窗口或者控件都直接或者间接的继承了这个类,使用这个类的时候可以直接使用,也可以继承了再使用。 QWidget类直接提供的成员函数为...
  • QLabel QLabel是最常用的控件之一,我们可以用它来显示文本、图片和动画等。 要使用QLabel,还是需要先引入<QLabel>头文件。 显示文字 显示下面我们来实现一个最简单的只显示文字的QLabel: 可以看到...
  • QLabel & QTextEdit

    千次阅读 2014-02-12 23:52:42
    大概看了下Qt帮助文档,学习、了解QLabel和QTexEdit。  QLabel可以显示 plain text、rich text、pixmap、movie、number、null,但不提供像Edit这样的交互行为。 部分属性有: 1、可以设置对齐方式setAlignment...
  • Qt:代码控件。 ... 目录 控件通用的部分 QPushBotton ...其中四个参数分别表示为1x长度,2y长度,(x,y)形成了控件在界面上的具体位置,及控件左上角举例界面零点(0,0)的相对位置。...那么直接用信号和槽即可,即可...
  •   本节介绍一些常用的控件,是在“图像处理自编软件”中用到的几种,包括QLabel、QPushButton、QLineEdit、QTextEdit、QSlider、QSpinBox、 QRadioButton、QComboBox,下面逐一进行介绍QLabel、QPushButton、...
  • Qt学习:QLabel的用法及其程序示例

    万次阅读 2019-06-17 14:04:26
    主要成员函数:1.void setText(QString); //设置label框内的文本. 2.void hide(); //隐藏label框. 3.void setBuddy(QWidget*); //把另一个部件设为label框的伙伴,方便快捷使用. ...
  • PyQt5基本控件详解之QLabel(三)

    万次阅读 多人点赞 2018-08-08 11:04:35
    QLabel QLabel的作用: 占位符 显示文本 显示图片 放置gif动画 超链接 提示标记 Qlabel常用方法 方法 描述 setAlignment() 按固定值方式对齐文本 Qt.AlignLeft:水平方向靠左对齐 Qt....
  • Qt文档译:QLabel

    千次阅读 2018-05-15 16:41:25
    QLabel类主要用来文本和图像的显示,没有提供用户交互功能.QLabel对象的视觉外观可以由用户自定义配置.它还可以为另外一个可获得焦点的控件作为焦点助力器.(后面会提到). QLabel可以显示下列的所有类型: Plain ...
  • QLabel

    千次阅读 2016-05-10 16:36:25
    QLabel *Label = new QLabel(this); Label->setText("&This is a QLabel"); QPushButton *button = new QPushButton("clicked",this); Label->setBuddy(button);//如果使用快捷键选择该Label时,焦点跳转到button...
  • Qlabel

    2017-09-01 10:47:30
    Qt入门
  • QLabel

    2018-08-07 16:34:14
    QLabel The QLabel widget provides a text or image display. 可以显示的文本 void clear() void setMovie(QMovie *movie) void setNum(int num) void setNum(double num) void setPicture(const QP...
  • QLabel

    2013-10-22 15:39:41
    QLabel::setFrameShape()设置标签的形状: 1、QFrame::NoFrame:没有边框,此时QFrame什么也不绘制。 2、QFrame::Box:在显示内容周围绘制一个方框。 3、QFrame::Panel:绘制一个面板,使得显示内容凸起或凹陷。 ...
  • QLabel

    千次阅读 2018-06-26 22:11:40
    ui-&gt;qrcode-&gt;setPixmap(QPixmap(":/pic/pay_success.png"));... 1、整体简介(QLabel功能):QLabel的功能就是显示文字或者图片,没有用户交互功能,这也就是经常不位Q...
  • QLabel

    2020-04-05 10:03:02
    参考链接: 标签(QLabel
  • QLabel

    2009-09-29 09:23:00
    EXAMPLE 1: #include #include int main(int argc, char *argv[]){ QApplication app(argc, argv); QLabel *label = new QLabel("Hello

空空如也

1 2 3 4 5 ... 20
收藏数 21,090
精华内容 8,436
关键字:

qlabel