Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
ingame
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Vladislav
ingame
Commits
b5629c86
Commit
b5629c86
authored
May 05, 2024
by
Exc404
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Полная анимация кнопок вкладок
parent
1b37eb37
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
138 additions
and
17 deletions
+138
-17
Tabs.qml
qml/components/Tabs.qml
+20
-10
TextButton.qml
qml/components/TextButton.qml
+89
-0
Game.qml
qml/delegates/Game.qml
+6
-2
bg3.svg
qml/images/bg3.svg
+2
-0
qml.qml
qml/qml.qml
+19
-3
GameInfoScene.qml
qml/scenes/GameInfoScene.qml
+0
-2
HomeScene.qml
qml/scenes/HomeScene.qml
+2
-0
No files found.
qml/components/Tabs.qml
View file @
b5629c86
...
...
@@ -13,13 +13,16 @@ Rectangle {
property
var
activeButtonTab
:
buttonGames
id
:
tabs
x
:
0
x
:
10
0
y
:
0
width
:
640
height
:
480
color
:
Style
.
backgroundColor
Component.onCompleted
:{
tabButtons
.
changeButtonActiveTab
(
tabs
.
activeButtonTab
);
tabButtons
.
x
=
tabButtons
.
tempX
;}
onVisibleChanged
:
{
tabButtons
.
changeButtonActiveTab
(
tabs
.
activeButtonTab
);
tabButtons
.
x
=
tabButtons
.
tempX
;
console
.
log
(
"tabButtons.x = "
+
tabButtons
.
x
);}
Component
.
onCompleted
:{
tabButtons
.
changeButtonActiveTab
(
tabs
.
activeButtonTab
);
tabButtons
.
x
=
tabButtons
.
tempX
;
console
.
log
(
"Tabs completed!"
);}
onWidthChanged
:
function
(){
tabButtons
.
changeButtonActiveTab
(
tabs
.
activeButtonTab
);
tabButtons
.
x
=
tabButtons
.
tempX
;}
onHeightChanged
:
function
(){
tabButtons
.
changeButtonActiveTab
(
tabs
.
activeButtonTab
);
tabButtons
.
x
=
tabButtons
.
tempX
;}
...
...
@@ -35,15 +38,17 @@ Rectangle {
width
:
parent
.
width
RowLayout
{
id
:
tabButtons
property
int
tempX
:
0
property
int
tempX
:
10
0
property
bool
toggle
:
false
height
:
400
//anchors.leftMargin: parent.width / 10
//anchors.rightMargin: parent.width / 10
Layout.bottomMargin
:
buttonSystemManagement
.
height
Layout.topMargin
:
buttonSystemManagement
.
height
Component.onCompleted
:{
tabButtons
.
changeButtonActiveTab
(
tabs
.
activeButtonTab
);
tabButtons
.
x
=
tabButtons
.
tempX
;
console
.
log
(
"tabButtons completed!"
);}
//x: topNavigation.width / 2 //- tabButtons.children[1].width / 2 - (spacing + tabButtons.children[0].width )
Layout
.
bottomMargin
:
buttonSystemManagement
.
height
/
2
Layout
.
topMargin
:
buttonSystemManagement
.
height
/
3
x
:
100
// Состояния
states
:
[
State
{
name
:
"ClickTabButton"
;
when
:
tabButtons
.
toggle
;
PropertyChanges
{
target
:
tabButtons
;
x
:
tempX
}},
...
...
@@ -74,7 +79,10 @@ Rectangle {
for
(
i
=
0
;
i
<
index
;
++
i
)
left_distance
+=
spacing
+
children
[
i
].
width
tempX
=
topNavigation
.
width
/
2
-
tabButtons
.
children
[
index
].
width
/
2
-
left_distance
tabs
.
activeButtonTab
.
isActive
=
false
tabs
.
activeButtonTab
=
ButtonId
tabs
.
activeButtonTab
.
isActive
=
true
}
TopMenuBut.TextButton
{
...
...
@@ -104,14 +112,16 @@ Rectangle {
//app.get_games();
// tabs.changeTab();
// console.log(tabs.currentTab);
// ;console.log(tabs.currentTab);
// ;console.log("1");
}
onReleased
:
tabButtons
.
toggle
=
false
}
TopMenuBut.TextButton
{
id
:
testbut1
text
:
"
Test
"
text
:
"
Mega
"
onClicked
:
function
(){
tabButtons
.
x
=
tabButtons
.
tempX
tabButtons
.
changeButtonActiveTab
(
this
)
...
...
@@ -122,7 +132,7 @@ Rectangle {
}
TopMenuBut.TextButton
{
id
:
testbut2
text
:
"Test
2
"
text
:
"Test"
//font.pixelSize: 60
//height:Math.ceil(tabs.height/100 * 10)
...
...
qml/components/TextButton.qml
0 → 100644
View file @
b5629c86
import
QtQuick
import
QtQuick
.
Controls
as
C
C.Button
{
id
:
root
property
bool
isActive
:
false
hoverEnabled
:
true
//width: parent.width / 100 * 1.5
//height: 200
//text: "Size me!"
contentItem
:
Text
{
id
:
text
text
:
root
.
text
font.family
:
"Helvetica"
font.pointSize
:
14
font.bold
:
true
horizontalAlignment
:
Text
.
AlignHCenter
verticalAlignment
:
Text
.
AlignVCenter
//fontSizeMode: Text.Fit
color
:
'white'
opacity
:
0.8
}
background.opacity
:
0.0
background.anchors.margins
:
0
Rectangle
{
id
:
line
color
:
'white'
height
:
2
width
:
0
anchors.horizontalCenter
:
root
.
horizontalCenter
anchors.top
:
root
.
top
// anchors.bottom:root.bottom
}
// Состояния
states
:
[
// Карточка в фокуске
State
{
name
:
"active"
;
when
:
isActive
PropertyChanges
{
target
:
line
;
width
:
parent
.
width
;}
PropertyChanges
{
target
:
text
;
opacity
:
1
}
},
// На карточку навели курсор мыши
State
{
name
:
"hover"
;
when
:
hovered
&&
!
isActive
//PropertyChanges { target: line; width: parent.width;}
PropertyChanges
{
target
:
text
;
opacity
:
1
}
}
]
// Анимации при изменениях состояний
transitions
:
[
Transition
{
to
:
"active"
reversible
:
true
id
:
activeAnim
ParallelAnimation
{
NumberAnimation
{
target
:
line
;
property
:
"width"
duration
:
200
easing.type
:
Easing
.
InOutQuad
}
NumberAnimation
{
target
:
text
;
property
:
"opacity"
;
duration
:
100
}
}
},
Transition
{
from
:
""
;
to
:
"hover"
reversible
:
true
ParallelAnimation
{
NumberAnimation
{
target
:
line
;
property
:
"width"
duration
:
200
easing.type
:
Easing
.
InOutQuad
}
NumberAnimation
{
target
:
text
;
property
:
"opacity"
;
duration
:
100
}
}
}
]
}
qml/delegates/Game.qml
View file @
b5629c86
...
...
@@ -18,11 +18,15 @@ C.Button {
anchors.fill
:
parent
hoverEnabled
:
true
onClicked
:
function
(){
// console.log(game.title)
;
// console.log(game.title)
gameInfoScene
.
title
=
game
.
gameTitle
;
gameInfoScene
.
icon
=
game
.
gameIcon
;
gameInfoScene
.
exec
=
game
.
gameExec
;
window
.
scene
=
SceneConstants
.
gameInfoScene
;
window
.
scene
=
SceneConstants
.
gameInfoScene
;
}
}
//
...
...
qml/images/bg3.svg
0 → 100644
View file @
b5629c86
<svg
xmlns=
'http://www.w3.org/2000/svg'
width=
'100%'
height=
'100%'
viewBox=
'0 0 1600 800'
><rect
fill=
'#63067A'
width=
'1600'
height=
'800'
/><g
fill-opacity=
'1'
><path
fill=
'#520874'
d=
'M486 705.8c-109.3-21.8-223.4-32.2-335.3-19.4C99.5 692.1 49 703 0 719.8V800h843.8c-115.9-33.2-230.8-68.1-347.6-92.2C492.8 707.1 489.4 706.5 486 705.8z'
/><path
fill=
'#42096e'
d=
'M1600 0H0v719.8c49-16.8 99.5-27.8 150.7-33.5c111.9-12.7 226-2.4 335.3 19.4c3.4 0.7 6.8 1.4 10.2 2c116.8 24 231.7 59 347.6 92.2H1600V0z'
/><path
fill=
'#310b69'
d=
'M478.4 581c3.2 0.8 6.4 1.7 9.5 2.5c196.2 52.5 388.7 133.5 593.5 176.6c174.2 36.6 349.5 29.2 518.6-10.2V0H0v574.9c52.3-17.6 106.5-27.7 161.1-30.9C268.4 537.4 375.7 554.2 478.4 581z'
/><path
fill=
'#210c63'
d=
'M0 0v429.4c55.6-18.4 113.5-27.3 171.4-27.7c102.8-0.8 203.2 22.7 299.3 54.5c3 1 5.9 2 8.9 3c183.6 62 365.7 146.1 562.4 192.1c186.7 43.7 376.3 34.4 557.9-12.6V0H0z'
/><path
fill=
'#100E5D'
d=
'M181.8 259.4c98.2 6 191.9 35.2 281.3 72.1c2.8 1.1 5.5 2.3 8.3 3.4c171 71.6 342.7 158.5 531.3 207.7c198.8 51.8 403.4 40.8 597.3-14.8V0H0v283.2C59 263.6 120.6 255.7 181.8 259.4z'
/><path
fill=
'#0d0b4a'
d=
'M1600 0H0v136.3c62.3-20.9 127.7-27.5 192.2-19.2c93.6 12.1 180.5 47.7 263.3 89.6c2.6 1.3 5.1 2.6 7.7 3.9c158.4 81.1 319.7 170.9 500.3 223.2c210.5 61 430.8 49 636.6-16.6V0z'
/><path
fill=
'#0a0838'
d=
'M454.9 86.3C600.7 177 751.6 269.3 924.1 325c208.6 67.4 431.3 60.8 637.9-5.3c12.8-4.1 25.4-8.4 38.1-12.9V0H288.1c56 21.3 108.7 50.6 159.7 82C450.2 83.4 452.5 84.9 454.9 86.3z'
/><path
fill=
'#060625'
d=
'M1600 0H498c118.1 85.8 243.5 164.5 386.8 216.2c191.8 69.2 400 74.7 595 21.1c40.8-11.2 81.1-25.2 120.3-41.7V0z'
/><path
fill=
'#030313'
d=
'M1397.5 154.8c47.2-10.6 93.6-25.3 138.6-43.8c21.7-8.9 43-18.8 63.9-29.5V0H643.4c62.9 41.7 129.7 78.2 202.1 107.4C1020.4 178.1 1214.2 196.1 1397.5 154.8z'
/><path
fill=
'#000000'
d=
'M1315.3 72.4c75.3-12.6 148.9-37.1 216.8-72.4h-723C966.8 71 1144.7 101 1315.3 72.4z'
/></g></svg>
\ No newline at end of file
qml/qml.qml
View file @
b5629c86
...
...
@@ -8,6 +8,11 @@ import "constants/scene.js" as SceneConstants
Window
{
property
string
scene
:
SceneConstants
.
homeScene
Loader
{
id
:
ld
anchors.fill
:
parent
;
}
Connections
{
target
:
core_app
function
onGameStarted
(
done
)
{
...
...
@@ -45,20 +50,31 @@ Window {
visible
:
true
title
:
qsTr
(
"Launcher"
)
// Решение бага с изменением положений кнопок вкладок через opacity и enabled - ЭТО КОСТЫЛЬ!!!
HomeScene
{
visible
:
scene
==
SceneConstants
.
homeScene
//visible: scene == SceneConstants.homeScene
opacity
:
scene
==
SceneConstants
.
homeScene
enabled
:
scene
==
SceneConstants
.
homeScene
id
:
homeScene
anchors.fill
:
parent
}
GameInfoScene
{
visible
:
scene
==
SceneConstants
.
gameInfoScene
//visible: scene == SceneConstants.gameInfoScene
opacity
:
scene
==
SceneConstants
.
gameInfoScene
enabled
:
scene
==
SceneConstants
.
gameInfoScene
id
:
gameInfoScene
anchors.fill
:
parent
}
RunningScene
{
visible
:
scene
==
SceneConstants
.
runningScene
//visible: scene == SceneConstants.runningScene
opacity
:
scene
==
SceneConstants
.
runningScene
enabled
:
scene
==
SceneConstants
.
runningScene
id
:
runningScene
anchors.fill
:
parent
}
...
...
qml/scenes/GameInfoScene.qml
View file @
b5629c86
...
...
@@ -9,7 +9,6 @@ Rectangle {
property
string
icon
:
""
property
string
exec
:
""
id
:
container
x
:
0
y
:
0
...
...
@@ -35,7 +34,6 @@ Rectangle {
width
:
64
height
:
64
imageUrl
:
"../images/back.svg"
onClicked
:
function
(){
window
.
scene
=
S
.
homeScene
;
}
...
...
qml/scenes/HomeScene.qml
View file @
b5629c86
...
...
@@ -10,6 +10,8 @@ Rectangle {
width
:
640
height
:
480
onVisibleChanged
:
{
tabs
.
visible
=
container
.
visible
}
// Rectangle {
// id: rectangle
// height: parent.height/100 * 5
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment