├── QtAnimationDemo.pro
├── QtAnimationDemo.pro.user
├── main.cpp
├── mainwindow.cpp
├── mainwindow.h
└── mainwindow.ui
/QtAnimationDemo.pro:
--------------------------------------------------------------------------------
1 | #-------------------------------------------------
2 | #
3 | # Project created by QtCreator 2017-08-10T19:37:29
4 | #
5 | #-------------------------------------------------
6 |
7 | QT += core gui
8 |
9 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
10 |
11 | TARGET = QtAnimationDemo
12 | TEMPLATE = app
13 |
14 | # The following define makes your compiler emit warnings if you use
15 | # any feature of Qt which as been marked as deprecated (the exact warnings
16 | # depend on your compiler). Please consult the documentation of the
17 | # deprecated API in order to know how to port your code away from it.
18 | DEFINES += QT_DEPRECATED_WARNINGS
19 |
20 | # You can also make your code fail to compile if you use deprecated APIs.
21 | # In order to do so, uncomment the following line.
22 | # You can also select to disable deprecated APIs only up to a certain version of Qt.
23 | #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
24 |
25 |
26 | SOURCES += main.cpp\
27 | mainwindow.cpp
28 |
29 | HEADERS += mainwindow.h
30 |
31 | FORMS += mainwindow.ui
32 |
--------------------------------------------------------------------------------
/QtAnimationDemo.pro.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | EnvironmentId
7 | {fa6b55a0-ad3c-42b4-b187-72760eef9ba0}
8 |
9 |
10 | ProjectExplorer.Project.ActiveTarget
11 | 0
12 |
13 |
14 | ProjectExplorer.Project.EditorSettings
15 |
16 | true
17 | false
18 | true
19 |
20 | Cpp
21 |
22 | CppGlobal
23 |
24 |
25 |
26 | QmlJS
27 |
28 | QmlJSGlobal
29 |
30 |
31 | 2
32 | UTF-8
33 | false
34 | 4
35 | false
36 | 80
37 | true
38 | true
39 | 1
40 | true
41 | false
42 | 0
43 | true
44 | true
45 | 0
46 | 8
47 | true
48 | 1
49 | true
50 | true
51 | true
52 | false
53 |
54 |
55 |
56 | ProjectExplorer.Project.PluginSettings
57 |
58 |
59 |
60 | ProjectExplorer.Project.Target.0
61 |
62 | Desktop Qt 5.7.1 MinGW 32bit
63 | Desktop Qt 5.7.1 MinGW 32bit
64 | qt.57.win32_mingw53_kit
65 | 0
66 | 0
67 | 0
68 |
69 | E:/QtProject/build-QtAnimationDemo-Desktop_Qt_5_7_1_MinGW_32bit-Debug
70 |
71 |
72 | true
73 | qmake
74 |
75 | QtProjectManager.QMakeBuildStep
76 | true
77 |
78 | false
79 | false
80 | false
81 |
82 |
83 | true
84 | Make
85 |
86 | Qt4ProjectManager.MakeStep
87 |
88 | false
89 |
90 |
91 |
92 | 2
93 | 构建
94 |
95 | ProjectExplorer.BuildSteps.Build
96 |
97 |
98 |
99 | true
100 | Make
101 |
102 | Qt4ProjectManager.MakeStep
103 |
104 | true
105 | clean
106 |
107 |
108 | 1
109 | 清理
110 |
111 | ProjectExplorer.BuildSteps.Clean
112 |
113 | 2
114 | false
115 |
116 | Debug
117 |
118 | Qt4ProjectManager.Qt4BuildConfiguration
119 | 2
120 | true
121 |
122 |
123 | E:/QtProject/build-QtAnimationDemo-Desktop_Qt_5_7_1_MinGW_32bit-Release
124 |
125 |
126 | true
127 | qmake
128 |
129 | QtProjectManager.QMakeBuildStep
130 | false
131 |
132 | false
133 | false
134 | false
135 |
136 |
137 | true
138 | Make
139 |
140 | Qt4ProjectManager.MakeStep
141 |
142 | false
143 |
144 |
145 |
146 | 2
147 | 构建
148 |
149 | ProjectExplorer.BuildSteps.Build
150 |
151 |
152 |
153 | true
154 | Make
155 |
156 | Qt4ProjectManager.MakeStep
157 |
158 | true
159 | clean
160 |
161 |
162 | 1
163 | 清理
164 |
165 | ProjectExplorer.BuildSteps.Clean
166 |
167 | 2
168 | false
169 |
170 | Release
171 |
172 | Qt4ProjectManager.Qt4BuildConfiguration
173 | 0
174 | true
175 |
176 |
177 | E:/QtProject/build-QtAnimationDemo-Desktop_Qt_5_7_1_MinGW_32bit-Profile
178 |
179 |
180 | true
181 | qmake
182 |
183 | QtProjectManager.QMakeBuildStep
184 | true
185 |
186 | false
187 | true
188 | false
189 |
190 |
191 | true
192 | Make
193 |
194 | Qt4ProjectManager.MakeStep
195 |
196 | false
197 |
198 |
199 |
200 | 2
201 | 构建
202 |
203 | ProjectExplorer.BuildSteps.Build
204 |
205 |
206 |
207 | true
208 | Make
209 |
210 | Qt4ProjectManager.MakeStep
211 |
212 | true
213 | clean
214 |
215 |
216 | 1
217 | 清理
218 |
219 | ProjectExplorer.BuildSteps.Clean
220 |
221 | 2
222 | false
223 |
224 | Profile
225 |
226 | Qt4ProjectManager.Qt4BuildConfiguration
227 | 0
228 | true
229 |
230 | 3
231 |
232 |
233 | 0
234 | 部署
235 |
236 | ProjectExplorer.BuildSteps.Deploy
237 |
238 | 1
239 | 在本地部署
240 |
241 | ProjectExplorer.DefaultDeployConfiguration
242 |
243 | 1
244 |
245 |
246 | false
247 | false
248 | 1000
249 |
250 | true
251 |
252 | false
253 | false
254 | false
255 | false
256 | true
257 | 0.01
258 | 10
259 | true
260 | 1
261 | 25
262 |
263 | 1
264 | true
265 | false
266 | true
267 | valgrind
268 |
269 | 0
270 | 1
271 | 2
272 | 3
273 | 4
274 | 5
275 | 6
276 | 7
277 | 8
278 | 9
279 | 10
280 | 11
281 | 12
282 | 13
283 | 14
284 |
285 | 2
286 |
287 | QtAnimationDemo
288 |
289 | Qt4ProjectManager.Qt4RunConfiguration:E:/QtProject/QtAnimationDemo/QtAnimationDemo.pro
290 | true
291 |
292 | QtAnimationDemo.pro
293 | false
294 |
295 |
296 | 3768
297 | false
298 | true
299 | false
300 | false
301 | true
302 |
303 | 1
304 |
305 |
306 |
307 | ProjectExplorer.Project.TargetCount
308 | 1
309 |
310 |
311 | ProjectExplorer.Project.Updater.FileVersion
312 | 18
313 |
314 |
315 | Version
316 | 18
317 |
318 |
319 |
--------------------------------------------------------------------------------
/main.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include
3 |
4 | int main(int argc, char *argv[])
5 | {
6 | QApplication a(argc, argv);
7 | MainWindow w;
8 | w.show();
9 |
10 | return a.exec();
11 | }
12 |
--------------------------------------------------------------------------------
/mainwindow.cpp:
--------------------------------------------------------------------------------
1 | #include "mainwindow.h"
2 | #include "ui_mainwindow.h"
3 | #include
4 | #include
5 | #include
6 | #include
7 |
8 | MainWindow::MainWindow(QWidget *parent) :
9 | QMainWindow(parent),
10 | ui(new Ui::MainWindow)
11 | {
12 | ui->setupUi(this);
13 |
14 | //scale
15 | QPropertyAnimation *pScaleAnimation1 = new QPropertyAnimation(ui->scaleButton, "geometry");
16 | pScaleAnimation1->setDuration(1000);
17 | pScaleAnimation1->setStartValue(QRect(190, 230, 0, 0));
18 | pScaleAnimation1->setEndValue(QRect(120, 160, 140, 140));
19 | pScaleAnimation1->setEasingCurve(QEasingCurve::InOutQuad);
20 |
21 | QPropertyAnimation *pScaleAnimation2 = new QPropertyAnimation(ui->scaleButton, "geometry");
22 | pScaleAnimation2->setDuration(1000);
23 | pScaleAnimation2->setStartValue(QRect(120, 160, 140, 140));
24 | pScaleAnimation2->setEndValue(QRect(190, 230, 0, 0));
25 | pScaleAnimation2->setEasingCurve(QEasingCurve::InOutQuad);
26 |
27 | QSequentialAnimationGroup *pScaleGroup = new QSequentialAnimationGroup(this);
28 | pScaleGroup->addAnimation(pScaleAnimation1);
29 | pScaleGroup->addAnimation(pScaleAnimation2);
30 |
31 | //pos
32 | QPropertyAnimation *pPosAnimation1 = new QPropertyAnimation(ui->posButton, "pos");
33 | pPosAnimation1->setDuration(1000);
34 | pPosAnimation1->setStartValue(QPoint(360, 160));
35 | pPosAnimation1->setEndValue(QPoint(360, 350));
36 | pPosAnimation1->setEasingCurve(QEasingCurve::InOutQuad);
37 |
38 | // QPropertyAnimation *pPosAnimation2 = new QPropertyAnimation(ui->posButton, "pos");
39 | // pPosAnimation2->setDuration(1000);
40 | // pPosAnimation2->setStartValue(QPoint(360, 350));
41 | // pPosAnimation2->setEndValue(QPoint(360, 160));
42 | // pPosAnimation2->setEasingCurve(QEasingCurve::InOutQuad);
43 |
44 | QSequentialAnimationGroup *pPosGroup = new QSequentialAnimationGroup(this);
45 | pPosGroup->addPause(500);
46 | pPosGroup->addAnimation(pPosAnimation1);
47 | // pPosGroup->addAnimation(pPosAnimation2);
48 |
49 | //opacity
50 | QGraphicsOpacityEffect *pButtonOpacity = new QGraphicsOpacityEffect(this);
51 | pButtonOpacity->setOpacity(1);
52 | ui->opasityButton->setGraphicsEffect(pButtonOpacity);
53 |
54 | QPropertyAnimation *pOpacityAnimation1 = new QPropertyAnimation(pButtonOpacity, "opacity");
55 | pOpacityAnimation1->setDuration(1000);
56 | pOpacityAnimation1->setStartValue(1);
57 | pOpacityAnimation1->setEndValue(0);
58 |
59 | QPropertyAnimation *pOpacityAnimation2 = new QPropertyAnimation(pButtonOpacity, "opacity");
60 | pOpacityAnimation2->setDuration(1000);
61 | pOpacityAnimation2->setStartValue(0);
62 | pOpacityAnimation2->setEndValue(1);
63 |
64 | QSequentialAnimationGroup *pOpacityGroup = new QSequentialAnimationGroup(this);
65 | pOpacityGroup->addPause(1000);
66 | pOpacityGroup->addAnimation(pOpacityAnimation1);
67 | pOpacityGroup->addAnimation(pOpacityAnimation2);
68 |
69 | m_group = new QParallelAnimationGroup(this);
70 | m_group->addAnimation(pScaleGroup);
71 | m_group->addAnimation(pPosGroup);
72 | m_group->addAnimation(pOpacityGroup);
73 | }
74 |
75 | MainWindow::~MainWindow()
76 | {
77 | delete ui;
78 | }
79 |
80 | void MainWindow::on_startButton_clicked()
81 | {
82 | m_group->setDirection(QAbstractAnimation::Forward);
83 | m_group->setLoopCount(1);
84 | m_group->start();
85 | }
86 |
87 | void MainWindow::on_startButton_3_clicked()
88 | {
89 | m_group->setDirection(QAbstractAnimation::Backward);
90 | m_group->setLoopCount(1);
91 | m_group->start();
92 | }
93 |
94 | void MainWindow::on_startButton_2_clicked()
95 | {
96 | m_group->setDirection(QAbstractAnimation::Forward);
97 | m_group->setLoopCount(-1);
98 | m_group->start();
99 | }
100 |
101 |
102 |
--------------------------------------------------------------------------------
/mainwindow.h:
--------------------------------------------------------------------------------
1 | #ifndef MAINWINDOW_H
2 | #define MAINWINDOW_H
3 |
4 | #include
5 | #include
6 |
7 | namespace Ui {
8 | class MainWindow;
9 | }
10 |
11 | class MainWindow : public QMainWindow
12 | {
13 | Q_OBJECT
14 |
15 | public:
16 | explicit MainWindow(QWidget *parent = 0);
17 | ~MainWindow();
18 |
19 | private slots:
20 | void on_startButton_clicked();
21 |
22 | void on_startButton_2_clicked();
23 |
24 | void on_startButton_3_clicked();
25 |
26 | private:
27 | Ui::MainWindow *ui;
28 | QParallelAnimationGroup *m_group;
29 | };
30 |
31 | #endif // MAINWINDOW_H
32 |
--------------------------------------------------------------------------------
/mainwindow.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 836
10 | 504
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 |
19 |
20 | 120
21 | 160
22 | 140
23 | 140
24 |
25 |
26 |
27 |
28 | 12
29 |
30 |
31 |
32 | background-color: rgb(146, 110, 255);
33 | border:none;
34 |
35 |
36 | scale
37 |
38 |
39 |
40 |
41 |
42 | 360
43 | 160
44 | 140
45 | 140
46 |
47 |
48 |
49 |
50 | 12
51 |
52 |
53 |
54 | background-color: rgb(164, 211, 255);
55 | border:none;
56 |
57 |
58 | pos
59 |
60 |
61 |
62 |
63 |
64 | 600
65 | 160
66 | 140
67 | 140
68 |
69 |
70 |
71 |
72 | 12
73 |
74 |
75 |
76 | background-color: rgb(65, 52, 37);
77 | border:none;
78 |
79 |
80 | opacity
81 |
82 |
83 |
84 |
85 |
86 | 260
87 | 70
88 | 80
89 | 40
90 |
91 |
92 |
93 |
94 | 黑体
95 | 20
96 |
97 |
98 |
99 |
100 |
101 |
102 | start
103 |
104 |
105 |
106 |
107 |
108 | 500
109 | 70
110 | 80
111 | 40
112 |
113 |
114 |
115 |
116 | 黑体
117 | 20
118 |
119 |
120 |
121 |
122 |
123 |
124 | loop
125 |
126 |
127 |
128 |
129 |
130 | 370
131 | 70
132 | 100
133 | 40
134 |
135 |
136 |
137 |
138 | 黑体
139 | 20
140 | PreferDefault
141 |
142 |
143 |
144 |
145 |
146 |
147 | back
148 |
149 |
150 |
151 |
161 |
162 |
163 |
164 |
165 |
166 |
--------------------------------------------------------------------------------