Qt学习:QLabel的用法及其程序示例
2017-10-05 12:02
579 查看
主要成员函数:
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内的代码:”代码中包含注释,方便理解.
以下是”c.h”内的代码:
最后是”main.cpp内的代码:”
关于QMovie类的操作可以去查阅Qt的官方文档进行学习,作一些扩展!
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 <QLabe 4000 l> #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学习: QTabWidget多页面部件的用法及程序示例
- Qt学习: QFileDialog和QMessageBox的用法和程序示例
- 嵌入式成长轨迹34 【嵌入式学习阶段】【ARM环境调试】【QT 移植环境及简单程序示例】---补充《ok6410 Qt移植百科全书》
- Qt学习: QPaintEvent和QMouseEvent的简单程序示例
- Qt学习: QListWidget程序示例
- 学习笔记----图形界面程序Qt安装及其在2410-s上的移植
- 学习笔记----图形界面程序Qt安装及其在2410-s上的移植
- 学习笔记----图形界面程序Qt安装及其在2410-s上的移植
- 常用软件滤波方法及其示例程序
- 【MPI学习1】简单MPI程序示例
- 视觉学习三 ——第一个Qt窗口程序
- 【学习笔记】C#中HashTable和快速排序的用法,从单词频率统计小程序写起
- Qt、C++学习交流群招管理员咯(群主为一枚Qt程序开发人员)
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)good
- 2014-11-17--Hadoop的基础学习(四)--编写不同MapReudce程序及其特性(上)
- Qt自带示例演示程序
- AjaxPanel自定义控件实现页面无刷新数据交互(做了个示例程序, 效果确实比较Cool, 用法非常简单! )(示例代码下载)
- Qt学习(二)—发布Qt程序
- maven学习笔记:命令行模式创建java_spark项目并运行示例程序