首页 > 编程知识 正文

窗口切换导致视频播放终止怎么办,flash按钮播放整个动画

时间:2023-05-06 03:20:52 阅读:146137 作者:2612

单击QToolButtoon以显示小部件。 小部件包含一个按钮,单击该按钮可开始播放动画,动画播放结束时发送finish信号,通知关闭窗口的函数关闭当前窗口。

单击按钮播放此动画

直接拖动控件以完成布局

上传代码:

main.cpp

# include ' widget.h ' # includeqapplicationintmain (int argv,char *argv[] () qapplicationa ) argc,argv ); 小部件w; w.show (; return a.exec (; }构件. h

# ifndef构件_ h # define构件_ h # includeqwidget # include ' cartoon构件. h ' Qt _ begin _ namespacenamespaceui { ~小部件(); 私有slots : void on _ toolbutton _ clicked (; private : cartoon构件* cartoon构件; UI:3360小部件*UI; (; # endif//构件_ h构件. CPP

# include '构件. h ' # include ' ui _构件. h '构件33603360构件(q构件parent ) : q构件(parent ),} } void构件:3360 on _ toolbutton _ clicked () { cartoon构件=new cartoon构件; cartoon构件- show (; } ui _构件. h

如果可以自己拖动控件,则不需要此头文件。 创建一个小部件就可以了

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * createdby : qtuserinterfacecompilerversion5. 13.2 *。 allchangesmadeinthisfilewillbelostwhenrecompilinguifile! * * * * * * * * * * * * * * * * * * * * * * * * * * * * includeqtwidgets/qapplication # includeqtwidgets/qlabel # voidsetupui (q构件*构件if )构件-对象名称(.isEmpty ) )构件-设置对象名称(qstring 33603360 from构件- ) label=新qlabel (小部件); 标签集对象名称(qstring :3360 from utf8(label ); 标签集几何(q rect ) 220、280、41、30 ); toolbutton=newq toolbutton (构件; toolbutton-set object name (qstring :3360 from utf8(' toolbutton ' ); 工具集几何(q重置) 150、180、200、111 ); toolbutton-settoolbuttonstyle (Qt :3360 toolbuttonicononly );

toolButton->raise(); label->raise(); retranslateUi(Widget); QMetaObject::connectSlotsByName(Widget); } // setupUi void retranslateUi(QWidget *Widget) { Widget->setWindowTitle(QCoreApplication::translate("Widget", "Widget", nullptr)); label->setText(QString()); toolButton->setText(QString()); } // retranslateUi};namespace Ui { class Widget: public Ui_Widget {};} // namespace UiQT_END_NAMESPACE#endif // UI_WIDGET_H

cartoonwidget.h

#ifndef CARTOONWIDGET_H#define CARTOONWIDGET_H#include <QWidget>#include <QMovie>namespace Ui {class cartoonWidget;}class CartoonWidget : public QWidget{ Q_OBJECTpublic: explicit CartoonWidget(QWidget *parent = nullptr); ~CartoonWidget();private slots: void on_toolButton_clicked(); void closeWidget();private: Ui::cartoonWidget *ui; QMovie *movie;};#endif // CARTOONWIDGET_H

cartoonwidget.cpp

#include "cartoonwidget.h"#include "ui_cartoonwidget.h"#include <QThread>#include <QApplication>CartoonWidget::CartoonWidget(QWidget *parent) : QWidget(parent), ui(new Ui::cartoonWidget){ ui->setupUi(this); movie = new QMovie(":/E:/ProjectCode/CXPM/cxpm/PrinterUI/image/printImage/longPressReturn.gif"); QImage img(":/E:/ProjectCode/CXPM/cxpm/PrinterUI/image/printImage/longPressReturn.gif"); ui->label->setGeometry(160, 610, img.width(), img.height()); ui->label->setMovie(movie); connect(movie, &QMovie::finished, this, &CartoonWidget::closeWidget);}CartoonWidget::~CartoonWidget(){ if (movie != nullptr) { delete movie; } delete ui;}void CartoonWidget::on_toolButton_clicked(){ ui->toolButton->hide(); movie->start(); for (int i = 0; i < 2500; i += movie->speed()) { QCoreApplication::processEvents(); QThread::usleep(static_cast<unsigned long>(500 * movie->speed())); } movie->finished();}void CartoonWidget::closeWidget(){ this->close();}

ui_cartoonwidget.h
能自己拖控件的话,这个头文件也不需要了,建一个widget程序就可以了

/********************************************************************************** Form generated from reading UI file 'cartoonwidget.ui'**** Created by: Qt User Interface Compiler version 5.13.2**** WARNING! All changes made in this file will be lost when recompiling UI file!********************************************************************************/#ifndef UI_CARTOONWIDGET_H#define UI_CARTOONWIDGET_H#include <QtCore/QVariant>#include <QtWidgets/QApplication>#include <QtWidgets/QLabel>#include <QtWidgets/QToolButton>#include <QtWidgets/QWidget>QT_BEGIN_NAMESPACEclass Ui_cartoonWidget{public: QToolButton *toolButton; QLabel *label; void setupUi(QWidget *cartoonWidget) { if (cartoonWidget->objectName().isEmpty()) cartoonWidget->setObjectName(QString::fromUtf8("cartoonWidget")); cartoonWidget->resize(480, 800); cartoonWidget->setMinimumSize(QSize(480, 800)); cartoonWidget->setMaximumSize(QSize(480, 800)); toolButton = new QToolButton(cartoonWidget); toolButton->setObjectName(QString::fromUtf8("toolButton")); toolButton->setGeometry(QRect(160, 610, 111, 81)); label = new QLabel(cartoonWidget); label->setObjectName(QString::fromUtf8("label")); label->setGeometry(QRect(160, 610, 111, 81)); label->raise(); toolButton->raise(); retranslateUi(cartoonWidget); QMetaObject::connectSlotsByName(cartoonWidget); } // setupUi void retranslateUi(QWidget *cartoonWidget) { cartoonWidget->setWindowTitle(QCoreApplication::translate("cartoonWidget", "Form", nullptr)); toolButton->setText(QString()); label->setText(QString()); } // retranslateUi};namespace Ui { class cartoonWidget: public Ui_cartoonWidget {};} // namespace UiQT_END_NAMESPACE#endif // UI_CARTOONWIDGET_H

运行效果如下:


点击弹出from窗口

点击中间的按钮开始播放动画

动画播放结束后此窗口被关闭。

需要源代码的自己点一下下载,免费的
https://download.csdn.net/download/shejun6/13217635

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。