当前位置: 首页 > news >正文

网站建设平台硬件要求深圳住建招标网官网

网站建设平台硬件要求,深圳住建招标网官网,域名注册1元,PHP网站开发案例12源代码Qt控件之QMovies 概述公共类型属性公共函数公共槽函数信号静态公共成员示例使用场景 概述 QMovie类是一个方便的类#xff0c;用于播放具有QImageReader的动画。此类用于显示没有声音的简单动画。如果您想显示视频和媒体内容#xff0c;请改用Qt多媒体框架Qt Multimedia mul… Qt控件之QMovies 概述公共类型属性公共函数公共槽函数信号静态公共成员示例使用场景 概述 QMovie类是一个方便的类用于播放具有QImageReader的动画。此类用于显示没有声音的简单动画。如果您想显示视频和媒体内容请改用Qt多媒体框架Qt Multimedia multimedia framework。 首先通过将文件的名称或包含动画图像格式的QIODevice的指针传递给QMovie的构造函数创建一个QMovie对象。您可以在开始播放动画之前调用isValid()函数来检查图像数据是否有效。要开始播放动画请调用start()函数。QMovie将进入Running状态并发出started()和stateChanged()信号。要获取动画的当前状态请调用state()函数。 要在应用程序中显示动画您可以将QMovie对象传递给QLabel::setMovie()函数。示例如下 QLabel label;QMovie *movie new QMovie(animations/fire.gif);label.setMovie(movie);movie-start();每当动画中有新帧可用时QMovie将发出updated()信号。如果帧的大小发生更改则发出resized()信号。您可以调用currentImage()或currentPixmap()函数来获取当前帧的副本。当动画完成时QMovie发出finished()信号。如果在播放过程中发生任何错误即图像文件损坏QMovie将发出error()信号。 调用setSpeed()函数可以控制动画的播放速度该函数将原始速度的百分比作为参数。通过调用setPaused(true)函数可以暂停动画。然后QMovie将进入Paused状态并发出stateChanged()信号。如果调用setPaused(false)函数则QMovie将重新进入Running状态并重新开始动画。要停止动画请调用stop()函数。 某些动画格式允许您设置背景颜色。您可以调用setBackgroundColor()函数来设置颜色或者调用backgroundColor()函数来获取当前的背景颜色。 currentFrameNumber()函数返回当前帧的序列号。动画中的第一帧序列号为0。如果图像格式支持frameCount()函数返回动画中的总帧数。可以调用loopCount()函数获取动画在完成之前应循环播放的次数。nextFrameDelay()函数返回当前帧应该显示的毫秒数。 可以通过调用setCacheMode()函数指示QMovie缓存动画的帧。 调用supportedFormats()函数可以获取QMovie支持的格式列表。 公共类型 enum CacheMode { CacheNone, CacheAll } // 缓存模式enum MovieState { NotRunning, Paused, Running } // 动画状态 属性 cacheMode : CacheMode // 缓存模式speed : int // 速度 公共函数 QMovie(QObject *parent Q_NULLPTR) // 构造函数QMovie(QIODevice *device, const QByteArray format QByteArray(), QObject *parent Q_NULLPTR)QMovie(const QString fileName, const QByteArray format QByteArray(), QObject *parent Q_NULLPTR)~QMovie() // 析构函数QColor backgroundColor() const // 获取背景颜色CacheMode cacheMode() const // 获取缓存模式int currentFrameNumber() const // 获取当前帧的序号QImage currentImage() const // 获取当前帧的QImage对象QPixmap currentPixmap() const // 获取当前帧的QPixmap对象QIODevice *device() const // 获取当前设备QString fileName() const // 获取文件名QByteArray format() const // 获取格式int frameCount() const // 获取动画的总帧数QRect frameRect() const // 获取动画帧的矩形区域bool isValid() const // 检查动画数据是否有效bool jumpToFrame(int frameNumber) // 跳转到指定帧int loopCount() const // 获取动画应循环播放的次数int nextFrameDelay() const // 获取下一帧的延迟时间QSize scaledSize() // 获取缩放尺寸void setBackgroundColor(const QColor color) // 设置背景颜色void setCacheMode(CacheMode mode) // 设置缓存模式void setDevice(QIODevice *device) // 设置设备void setFileName(const QString fileName) // 设置文件名void setFormat(const QByteArray format) // 设置格式void setScaledSize(const QSize size) // 设置缩放尺寸int speed() const // 获取速度MovieState state() const // 获取动画状态 公共槽函数 bool jumpToNextFrame() // 跳转到下一帧void setPaused(bool paused) // 设置暂停状态void setSpeed(int percentSpeed) // 设置速度void start() // 开始播放动画void stop() // 停止动画 信号 void error(QImageReader::ImageReaderError error) // 错误信号void finished() // 动画完成信号void frameChanged(int frameNumber) // 帧变化信号void resized(const QSize size) // 重新调整大小信号void started() // 动画开始信号void stateChanged(QMovie::MovieState state) // 状态变化信号void updated(const QRect rect) // 更新信号 静态公共成员 QList supportedFormats() // 支持的格式列表 示例 先上UI 实现步骤在代码中有注释。 MoviePlayer.h #ifndef MOVIEPLAYER_H #define MOVIEPLAYER_H#include QWidgetQT_BEGIN_NAMESPACE class QCheckBox; class QGridLayout; class QHBoxLayout; class QLabel; class QMovie; class QSlider; class QSpinBox; class QToolButton; class QVBoxLayout; QT_END_NAMESPACEclass MoviePlayer : public QWidget {Q_OBJECTpublic:MoviePlayer(QWidget *parent 0);// 打开文件void openFile(const QString fileName);private slots:// 打开槽函数void open();// 跳转到某帧void goToFrame(int frame);// 适应窗口void fitToWindow();// 更新按钮状态void updateButtons();// 更新帧滑动条void updateFrameSlider();// 当微调框数据改变时触发此槽void slot_valueChanged(int nPercentSpeed);private:// 创建控件void createControls();// 创建按钮:开始、暂停、停止void createButtons();// 目录QString currentMovieDirectory;QLabel *movieLabel; // 防止QMoive的控件QMovie *movie; // QMoive对象QToolButton *openButton;QToolButton *playButton;QToolButton *pauseButton;QToolButton *stopButton;QToolButton *quitButton;QCheckBox *fitCheckBox;QSlider *frameSlider;QSpinBox *speedSpinBox;QLabel *frameLabel;QLabel *speedLabel;QGridLayout *controlsLayout;QHBoxLayout *buttonsLayout;QVBoxLayout *mainLayout; };#endifMoviePlayer.cpp #include QtWidgets#include movieplayer.hMoviePlayer::MoviePlayer(QWidget *parent): QWidget(parent) {movie new QMovie(this);movie-setCacheMode(QMovie::CacheAll);movieLabel new QLabel(tr(No movie loaded));movieLabel-setAlignment(Qt::AlignCenter);movieLabel-setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);movieLabel-setBackgroundRole(QPalette::Dark);movieLabel-setAutoFillBackground(true);currentMovieDirectory movies;createControls();createButtons();connect(movie, SIGNAL(frameChanged(int)), this, SLOT(updateFrameSlider()));connect(movie, SIGNAL(stateChanged(QMovie::MovieState)),this, SLOT(updateButtons()));connect(fitCheckBox, SIGNAL(clicked()), this, SLOT(fitToWindow()));connect(frameSlider, SIGNAL(valueChanged(int)), this, SLOT(goToFrame(int)));connect(speedSpinBox, SIGNAL(valueChanged(int)),this, SLOT(slot_valueChanged(int)));// movie, SLOT(setSpeed(int)));mainLayout new QVBoxLayout;mainLayout-addWidget(movieLabel);mainLayout-addLayout(controlsLayout);mainLayout-addLayout(buttonsLayout);setLayout(mainLayout);updateFrameSlider();updateButtons();setWindowTitle(tr(Movie Player));resize(400, 400); }void MoviePlayer::open() {QString fileName QFileDialog::getOpenFileName(this, tr(Open a Movie),currentMovieDirectory);if (!fileName.isEmpty())openFile(fileName); }void MoviePlayer::openFile(const QString fileName) {currentMovieDirectory QFileInfo(fileName).path();movie-stop();movieLabel-setMovie(movie);movie-setFileName(fileName);movie-start();updateFrameSlider();updateButtons(); }void MoviePlayer::goToFrame(int frame) {movie-jumpToFrame(frame); }void MoviePlayer::fitToWindow() {movieLabel-setScaledContents(fitCheckBox-isChecked()); }void MoviePlayer::updateFrameSlider() {bool hasFrames (movie-currentFrameNumber() 0);if (hasFrames) {if (movie-frameCount() 0) {frameSlider-setMaximum(movie-frameCount() - 1);} else {if (movie-currentFrameNumber() frameSlider-maximum())frameSlider-setMaximum(movie-currentFrameNumber());}frameSlider-setValue(movie-currentFrameNumber());} else {frameSlider-setMaximum(0);}frameLabel-setEnabled(hasFrames);frameSlider-setEnabled(hasFrames); }void MoviePlayer::slot_valueChanged(int nPercentSpeed) {qDebug().noquote() [ __FILE__ __LINE__ ] nPercentSpeed : nPercentSpeed;movie-setSpeed(nPercentSpeed); }void MoviePlayer::updateButtons() {playButton-setEnabled(movie-isValid() movie-frameCount() ! 1 movie-state() QMovie::NotRunning);pauseButton-setEnabled(movie-state() ! QMovie::NotRunning);pauseButton-setChecked(movie-state() QMovie::Paused);stopButton-setEnabled(movie-state() ! QMovie::NotRunning); }void MoviePlayer::createControls() {fitCheckBox new QCheckBox(tr(Fit to Window));frameLabel new QLabel(tr(Current frame:));frameSlider new QSlider(Qt::Horizontal);frameSlider-setTickPosition(QSlider::TicksBelow);frameSlider-setTickInterval(10);speedLabel new QLabel(tr(Speed:));speedSpinBox new QSpinBox;speedSpinBox-setRange(1, 9999);speedSpinBox-setValue(100);speedSpinBox-setSuffix(tr(%));controlsLayout new QGridLayout;controlsLayout-addWidget(fitCheckBox, 0, 0, 1, 2);controlsLayout-addWidget(frameLabel, 1, 0);controlsLayout-addWidget(frameSlider, 1, 1, 1, 2);controlsLayout-addWidget(speedLabel, 2, 0);controlsLayout-addWidget(speedSpinBox, 2, 1); }void MoviePlayer::createButtons() {QSize iconSize(36, 36);openButton new QToolButton;openButton-setIcon(style()-standardIcon(QStyle::SP_DialogOpenButton));openButton-setIconSize(iconSize);openButton-setToolTip(tr(Open File));connect(openButton, SIGNAL(clicked()), this, SLOT(open()));playButton new QToolButton;playButton-setIcon(style()-standardIcon(QStyle::SP_MediaPlay));playButton-setIconSize(iconSize);playButton-setToolTip(tr(Play));connect(playButton, SIGNAL(clicked()), movie, SLOT(start()));pauseButton new QToolButton;pauseButton-setCheckable(true);pauseButton-setIcon(style()-standardIcon(QStyle::SP_MediaPause));pauseButton-setIconSize(iconSize);pauseButton-setToolTip(tr(Pause));connect(pauseButton, SIGNAL(clicked(bool)), movie, SLOT(setPaused(bool)));stopButton new QToolButton;stopButton-setIcon(style()-standardIcon(QStyle::SP_MediaStop));stopButton-setIconSize(iconSize);stopButton-setToolTip(tr(Stop));connect(stopButton, SIGNAL(clicked()), movie, SLOT(stop()));quitButton new QToolButton;quitButton-setIcon(style()-standardIcon(QStyle::SP_DialogCloseButton));quitButton-setIconSize(iconSize);quitButton-setToolTip(tr(Quit));connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));buttonsLayout new QHBoxLayout;buttonsLayout-addStretch();buttonsLayout-addWidget(openButton);buttonsLayout-addWidget(playButton);buttonsLayout-addWidget(pauseButton);buttonsLayout-addWidget(stopButton);buttonsLayout-addWidget(quitButton);buttonsLayout-addStretch(); } 调用 #include QApplication#include movieplayer.hint main(int argc, char *argv[]) {QApplication app(argc, argv);MoviePlayer player;player.show();player.show();return app.exec(); } 使用场景 在刷新页面时可以使用QMovie来实现等待界面。QMovie类也适用于在应用程序中显示电影。通过将QMovie对象传递给QLabel::setMovie()可以将动画显示在QLabel控件中。 总之QMovie类适用于需要播放简单动画或实现等待界面的各种场景。
http://www.dnsts.com.cn/news/188679.html

相关文章:

  • 营销型网站建设哪家专业深圳网站制作大运软件小镇
  • 优化网站链接的方法网站建设公司广东
  • 完全免费网站源码企业网站推广的一般策略
  • 松岗做网站公司wordpress安装提示500错误
  • 重庆龙华网站建设公司建网站需要买服务器吗
  • 深圳网站优化最好的方法公司网站制作费计入会计什么科目
  • 有模版之后怎么做网站有没有免费装修设计的网站
  • 汽车设计网站转团关系必须用电脑吗
  • 珠海专业网站建设公司哪个网站是专门做兼职的
  • 二级域名如何绑定网站做网站 域名 网站 空间
  • 求职网站网页模板网站建设 销售
  • 湖州本地做网站在线教育类网站模板
  • 奇迹网站架设视频网站建设php文件放哪里
  • 网站外链建设的15个小技巧西青做网站公司
  • 外贸网站建设制作崇明建设镇虹桥村网站
  • seo优化网站词专业建站网站服务
  • 领先的手机网站设计公司简介模板怎么做
  • 公众号做电影网站赚钱海北公司网站建设多少钱
  • 聚牛网站建设公司html结构代码
  • 常州网站建设专业的公司微信公众号买卖平台
  • 如何做网站 写代码建站上市公司
  • 做网站赚钱多吗电脑网页版
  • 石家庄新钥匙建站建设营销网站
  • 重庆网站模板平台建设建设一个网站需要哪些费用
  • 学校网站建设团队网站建设技术发展趋势预测
  • 电子商务网站订单功能seo刷关键词排名软件
  • 网站建设实质怎么让别人在百度搜到自己的网站
  • 重庆石柱网站设计公司动漫制作教学
  • 360全景网站怎么做什么是网络运营
  • 花卉网站建设推广建设银行网站查余额查询