A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FQt%2FQMovie</id>
		<title>C++/Qt/QMovie - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FQt%2FQMovie"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QMovie&amp;action=history"/>
		<updated>2026-04-18T18:43:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QMovie&amp;diff=1256&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QMovie&amp;diff=1256&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QMovie&amp;diff=1257&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/Qt/QMovie&amp;diff=1257&amp;oldid=prev"/>
				<updated>2010-05-25T10:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==mng file player==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;  &lt;br /&gt;
/****************************************************************************&lt;br /&gt;
**&lt;br /&gt;
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).&lt;br /&gt;
** All rights reserved.&lt;br /&gt;
** Contact: Nokia Corporation (qt-info@nokia.com)&lt;br /&gt;
**&lt;br /&gt;
** This file is part of the examples of the Qt Toolkit.&lt;br /&gt;
**&lt;br /&gt;
** $QT_BEGIN_LICENSE:LGPL$&lt;br /&gt;
** Commercial Usage&lt;br /&gt;
** Licensees holding valid Qt Commercial licenses may use this file in&lt;br /&gt;
** accordance with the Qt Commercial License Agreement provided with the&lt;br /&gt;
** Software or, alternatively, in accordance with the terms contained in&lt;br /&gt;
** a written agreement between you and Nokia.&lt;br /&gt;
**&lt;br /&gt;
** GNU Lesser General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU Lesser&lt;br /&gt;
** General Public License version 2.1 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.LGPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU Lesser General Public License version 2.1 requirements&lt;br /&gt;
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.&lt;br /&gt;
**&lt;br /&gt;
** In addition, as a special exception, Nokia gives you certain additional&lt;br /&gt;
** rights.  These rights are described in the Nokia Qt LGPL Exception&lt;br /&gt;
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.&lt;br /&gt;
**&lt;br /&gt;
** GNU General Public License Usage&lt;br /&gt;
** Alternatively, this file may be used under the terms of the GNU&lt;br /&gt;
** General Public License version 3.0 as published by the Free Software&lt;br /&gt;
** Foundation and appearing in the file LICENSE.GPL included in the&lt;br /&gt;
** packaging of this file.  Please review the following information to&lt;br /&gt;
** ensure the GNU General Public License version 3.0 requirements will be&lt;br /&gt;
** met: http://www.gnu.org/copyleft/gpl.html.&lt;br /&gt;
**&lt;br /&gt;
** If you have questions regarding the use of this file, please contact&lt;br /&gt;
** Nokia at qt-info@nokia.com.&lt;br /&gt;
** $QT_END_LICENSE$&lt;br /&gt;
**&lt;br /&gt;
****************************************************************************/&lt;br /&gt;
#ifndef MOVIEPLAYER_H&lt;br /&gt;
#define MOVIEPLAYER_H&lt;br /&gt;
#include &amp;lt;QWidget&amp;gt;&lt;br /&gt;
QT_BEGIN_NAMESPACE&lt;br /&gt;
class QCheckBox;&lt;br /&gt;
class QGridLayout;&lt;br /&gt;
class QHBoxLayout;&lt;br /&gt;
class QLabel;&lt;br /&gt;
class QMovie;&lt;br /&gt;
class QSlider;&lt;br /&gt;
class QSpinBox;&lt;br /&gt;
class QToolButton;&lt;br /&gt;
class QVBoxLayout;&lt;br /&gt;
QT_END_NAMESPACE&lt;br /&gt;
class MoviePlayer : public QWidget&lt;br /&gt;
{&lt;br /&gt;
    Q_OBJECT&lt;br /&gt;
public:&lt;br /&gt;
    MoviePlayer(QWidget *parent = 0);&lt;br /&gt;
    void openFile(const QString &amp;amp;fileName);&lt;br /&gt;
private slots:&lt;br /&gt;
    void open();&lt;br /&gt;
    void goToFrame(int frame);&lt;br /&gt;
    void fitToWindow();&lt;br /&gt;
    void updateButtons();&lt;br /&gt;
    void updateFrameSlider();&lt;br /&gt;
private:&lt;br /&gt;
    void createControls();&lt;br /&gt;
    void createButtons();&lt;br /&gt;
    QString currentMovieDirectory;&lt;br /&gt;
    QLabel *movieLabel;&lt;br /&gt;
    QMovie *movie;&lt;br /&gt;
    QToolButton *openButton;&lt;br /&gt;
    QToolButton *playButton;&lt;br /&gt;
    QToolButton *pauseButton;&lt;br /&gt;
    QToolButton *stopButton;&lt;br /&gt;
    QToolButton *quitButton;&lt;br /&gt;
    QCheckBox *fitCheckBox;&lt;br /&gt;
    QSlider *frameSlider;&lt;br /&gt;
    QSpinBox *speedSpinBox;&lt;br /&gt;
    QLabel *frameLabel;&lt;br /&gt;
    QLabel *speedLabel;&lt;br /&gt;
    QGridLayout *controlsLayout;&lt;br /&gt;
    QHBoxLayout *buttonsLayout;&lt;br /&gt;
    QVBoxLayout *mainLayout;&lt;br /&gt;
};&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QtGui&amp;gt;&lt;br /&gt;
#include &amp;quot;movieplayer.h&amp;quot;&lt;br /&gt;
MoviePlayer::MoviePlayer(QWidget *parent)&lt;br /&gt;
    : QWidget(parent)&lt;br /&gt;
{&lt;br /&gt;
    movie = new QMovie(this);&lt;br /&gt;
    movie-&amp;gt;setCacheMode(QMovie::CacheAll);&lt;br /&gt;
    movieLabel = new QLabel(tr(&amp;quot;No movie loaded&amp;quot;));&lt;br /&gt;
    movieLabel-&amp;gt;setAlignment(Qt::AlignCenter);&lt;br /&gt;
    movieLabel-&amp;gt;setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Ignored);&lt;br /&gt;
    movieLabel-&amp;gt;setBackgroundRole(QPalette::Dark);&lt;br /&gt;
    movieLabel-&amp;gt;setAutoFillBackground(true);&lt;br /&gt;
    currentMovieDirectory = &amp;quot;movies&amp;quot;;&lt;br /&gt;
    createControls();&lt;br /&gt;
    createButtons();&lt;br /&gt;
    connect(movie, SIGNAL(frameChanged(int)), this, SLOT(updateFrameSlider()));&lt;br /&gt;
    connect(movie, SIGNAL(stateChanged(QMovie::MovieState)),&lt;br /&gt;
            this, SLOT(updateButtons()));&lt;br /&gt;
    connect(fitCheckBox, SIGNAL(clicked()), this, SLOT(fitToWindow()));&lt;br /&gt;
    connect(frameSlider, SIGNAL(valueChanged(int)), this, SLOT(goToFrame(int)));&lt;br /&gt;
    connect(speedSpinBox, SIGNAL(valueChanged(int)),&lt;br /&gt;
            movie, SLOT(setSpeed(int)));&lt;br /&gt;
    mainLayout = new QVBoxLayout;&lt;br /&gt;
    mainLayout-&amp;gt;addWidget(movieLabel);&lt;br /&gt;
    mainLayout-&amp;gt;addLayout(controlsLayout);&lt;br /&gt;
    mainLayout-&amp;gt;addLayout(buttonsLayout);&lt;br /&gt;
    setLayout(mainLayout);&lt;br /&gt;
    updateFrameSlider();&lt;br /&gt;
    updateButtons();&lt;br /&gt;
    setWindowTitle(tr(&amp;quot;Movie Player&amp;quot;));&lt;br /&gt;
    resize(400, 400);&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::open()&lt;br /&gt;
{&lt;br /&gt;
    QString fileName = QFileDialog::getOpenFileName(this, tr(&amp;quot;Open a Movie&amp;quot;),&lt;br /&gt;
                               currentMovieDirectory);&lt;br /&gt;
    if (!fileName.isEmpty())&lt;br /&gt;
        openFile(fileName);&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::openFile(const QString &amp;amp;fileName)&lt;br /&gt;
{&lt;br /&gt;
    currentMovieDirectory = QFileInfo(fileName).path();&lt;br /&gt;
    movie-&amp;gt;stop();&lt;br /&gt;
    movieLabel-&amp;gt;setMovie(movie);&lt;br /&gt;
    movie-&amp;gt;setFileName(fileName);&lt;br /&gt;
    movie-&amp;gt;start();&lt;br /&gt;
    updateFrameSlider();&lt;br /&gt;
    updateButtons();&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::goToFrame(int frame)&lt;br /&gt;
{&lt;br /&gt;
    movie-&amp;gt;jumpToFrame(frame);&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::fitToWindow()&lt;br /&gt;
{&lt;br /&gt;
    movieLabel-&amp;gt;setScaledContents(fitCheckBox-&amp;gt;isChecked());&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::updateFrameSlider()&lt;br /&gt;
{&lt;br /&gt;
    bool hasFrames = (movie-&amp;gt;currentFrameNumber() &amp;gt;= 0);&lt;br /&gt;
    if (hasFrames) {&lt;br /&gt;
        if (movie-&amp;gt;frameCount() &amp;gt; 0) {&lt;br /&gt;
            frameSlider-&amp;gt;setMaximum(movie-&amp;gt;frameCount() - 1);&lt;br /&gt;
        } else {&lt;br /&gt;
            if (movie-&amp;gt;currentFrameNumber() &amp;gt; frameSlider-&amp;gt;maximum())&lt;br /&gt;
                frameSlider-&amp;gt;setMaximum(movie-&amp;gt;currentFrameNumber());&lt;br /&gt;
        }&lt;br /&gt;
        frameSlider-&amp;gt;setValue(movie-&amp;gt;currentFrameNumber());&lt;br /&gt;
    } else {&lt;br /&gt;
        frameSlider-&amp;gt;setMaximum(0);&lt;br /&gt;
    }&lt;br /&gt;
    frameLabel-&amp;gt;setEnabled(hasFrames);&lt;br /&gt;
    frameSlider-&amp;gt;setEnabled(hasFrames);&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::updateButtons()&lt;br /&gt;
{&lt;br /&gt;
    playButton-&amp;gt;setEnabled(movie-&amp;gt;isValid() &amp;amp;&amp;amp; movie-&amp;gt;frameCount() != 1&lt;br /&gt;
                           &amp;amp;&amp;amp; movie-&amp;gt;state() == QMovie::NotRunning);&lt;br /&gt;
    pauseButton-&amp;gt;setEnabled(movie-&amp;gt;state() != QMovie::NotRunning);&lt;br /&gt;
    pauseButton-&amp;gt;setChecked(movie-&amp;gt;state() == QMovie::Paused);&lt;br /&gt;
    stopButton-&amp;gt;setEnabled(movie-&amp;gt;state() != QMovie::NotRunning);&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::createControls()&lt;br /&gt;
{&lt;br /&gt;
    fitCheckBox = new QCheckBox(tr(&amp;quot;Fit to Window&amp;quot;));&lt;br /&gt;
    frameLabel = new QLabel(tr(&amp;quot;Current frame:&amp;quot;));&lt;br /&gt;
    frameSlider = new QSlider(Qt::Horizontal);&lt;br /&gt;
    frameSlider-&amp;gt;setTickPosition(QSlider::TicksBelow);&lt;br /&gt;
    frameSlider-&amp;gt;setTickInterval(10);&lt;br /&gt;
    speedLabel = new QLabel(tr(&amp;quot;Speed:&amp;quot;));&lt;br /&gt;
    speedSpinBox = new QSpinBox;&lt;br /&gt;
    speedSpinBox-&amp;gt;setRange(1, 9999);&lt;br /&gt;
    speedSpinBox-&amp;gt;setValue(100);&lt;br /&gt;
    speedSpinBox-&amp;gt;setSuffix(tr(&amp;quot;%&amp;quot;));&lt;br /&gt;
    controlsLayout = new QGridLayout;&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(fitCheckBox, 0, 0, 1, 2);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(frameLabel, 1, 0);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(frameSlider, 1, 1, 1, 2);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(speedLabel, 2, 0);&lt;br /&gt;
    controlsLayout-&amp;gt;addWidget(speedSpinBox, 2, 1);&lt;br /&gt;
}&lt;br /&gt;
void MoviePlayer::createButtons()&lt;br /&gt;
{&lt;br /&gt;
    QSize iconSize(36, 36);&lt;br /&gt;
    openButton = new QToolButton;&lt;br /&gt;
    openButton-&amp;gt;setIcon(style()-&amp;gt;standardIcon(QStyle::SP_DialogOpenButton));&lt;br /&gt;
    openButton-&amp;gt;setIconSize(iconSize);&lt;br /&gt;
    openButton-&amp;gt;setToolTip(tr(&amp;quot;Open File&amp;quot;));&lt;br /&gt;
    connect(openButton, SIGNAL(clicked()), this, SLOT(open()));&lt;br /&gt;
    playButton = new QToolButton;&lt;br /&gt;
    playButton-&amp;gt;setIcon(style()-&amp;gt;standardIcon(QStyle::SP_MediaPlay));&lt;br /&gt;
    playButton-&amp;gt;setIconSize(iconSize);&lt;br /&gt;
    playButton-&amp;gt;setToolTip(tr(&amp;quot;Play&amp;quot;));&lt;br /&gt;
    connect(playButton, SIGNAL(clicked()), movie, SLOT(start()));&lt;br /&gt;
    pauseButton = new QToolButton;&lt;br /&gt;
    pauseButton-&amp;gt;setCheckable(true);&lt;br /&gt;
    pauseButton-&amp;gt;setIcon(style()-&amp;gt;standardIcon(QStyle::SP_MediaPause));&lt;br /&gt;
    pauseButton-&amp;gt;setIconSize(iconSize);&lt;br /&gt;
    pauseButton-&amp;gt;setToolTip(tr(&amp;quot;Pause&amp;quot;));&lt;br /&gt;
    connect(pauseButton, SIGNAL(clicked(bool)), movie, SLOT(setPaused(bool)));&lt;br /&gt;
    stopButton = new QToolButton;&lt;br /&gt;
    stopButton-&amp;gt;setIcon(style()-&amp;gt;standardIcon(QStyle::SP_MediaStop));&lt;br /&gt;
    stopButton-&amp;gt;setIconSize(iconSize);&lt;br /&gt;
    stopButton-&amp;gt;setToolTip(tr(&amp;quot;Stop&amp;quot;));&lt;br /&gt;
    connect(stopButton, SIGNAL(clicked()), movie, SLOT(stop()));&lt;br /&gt;
    quitButton = new QToolButton;&lt;br /&gt;
    quitButton-&amp;gt;setIcon(style()-&amp;gt;standardIcon(QStyle::SP_DialogCloseButton));&lt;br /&gt;
    quitButton-&amp;gt;setIconSize(iconSize);&lt;br /&gt;
    quitButton-&amp;gt;setToolTip(tr(&amp;quot;Quit&amp;quot;));&lt;br /&gt;
    connect(quitButton, SIGNAL(clicked()), this, SLOT(close()));&lt;br /&gt;
    buttonsLayout = new QHBoxLayout;&lt;br /&gt;
    buttonsLayout-&amp;gt;addStretch();&lt;br /&gt;
    buttonsLayout-&amp;gt;addWidget(openButton);&lt;br /&gt;
    buttonsLayout-&amp;gt;addWidget(playButton);&lt;br /&gt;
    buttonsLayout-&amp;gt;addWidget(pauseButton);&lt;br /&gt;
    buttonsLayout-&amp;gt;addWidget(stopButton);&lt;br /&gt;
    buttonsLayout-&amp;gt;addWidget(quitButton);&lt;br /&gt;
    buttonsLayout-&amp;gt;addStretch();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;QApplication&amp;gt;&lt;br /&gt;
#include &amp;quot;movieplayer.h&amp;quot;&lt;br /&gt;
int main(int argc, char *argv[])&lt;br /&gt;
{&lt;br /&gt;
    QApplication app(argc, argv);&lt;br /&gt;
    MoviePlayer player;&lt;br /&gt;
    player.show();&lt;br /&gt;
    return app.exec();&lt;br /&gt;
}&lt;br /&gt;
   &lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>