Radio widget με qml

...τα πάντα για το open source στον χώρο των gadgets, συζητήσεις, εργαλεία, open hardware, οδηγοί κ.ά.

Συντονιστής: adem1

Radio widget με qml

Δημοσίευσηαπό malos » 26 Νοέμ 2023, 18:45

Ξέρει κανείς γιατί αυτός ο κώδικας

Κώδικας: Επιλογή όλων

import QtQuick 2.3
import QtQuick.Layouts 1.1
import QtQuick.Controls 1.0 as QtControls
import QtQuick.Controls 2.0
import QtMultimedia 5.8
import org.kde.plasma.core 2.0 as PlasmaCore


PlasmaCore.IconItem {
id: root

property string url: plasmoid.configuration.url
property bool autoPlay: plasmoid.configuration.autoPlay

readonly property bool inPanel: (plasmoid.location === PlasmaCore.Types.TopEdge
|| plasmoid.location === PlasmaCore.Types.RightEdge
|| plasmoid.location === PlasmaCore.Types.BottomEdge
|| plasmoid.location === PlasmaCore.Types.LeftEdge)

Layout.maximumWidth: inPanel ? units.iconSizeHints.panel : -1
Layout.maximumHeight: inPanel ? units.iconSizeHints.panel : -1

Plasmoid.preferredRepresentation: Plasmoid.fullRepresentation
Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground
Plasmoid.onActivated: startStop()

Rectangle {
id: rootButton
width: 161
height: 100
color: "transparent"

onComponentCompleted: {
QtControls.Button {
id: playButton
text: isPlaying() ? "Stop" : "Play"
anchors.centerIn: rootButton
onClicked: startStop()
}
}
}


Text {
text: "Επιλέξτε σταθμό"
anchors.top: parent.top
anchors.left: parent.left
anchors.margins: 5
}

ListModel {
id: stationList
ListElement { station: "Rock FM" }
ListElement { station: "Ant1 Radio" }
// Προσθέστε άλλους σταθμούς αν χρειαστεί
}

ListView {
id: stationView
anchors.right: parent.right
anchors.top: parent.top
anchors.margins: 5
model: stationList

onCurrentItemChanged: {
root.url = stationList.get(currentItem).station
}
}
}

MediaPlayer {
id: playMusic
autoPlay: root.autoPlay
source: root.url

onStatusChanged: {
if (playMusic.metaData.title !== undefined) {
toolTip.subText = playMusic.metaData.title
}
}
}

MouseArea {
id: mouseArea
anchors.fill: parent
onClicked: startStop()
}

ToolTip {
id: toolTip
visible: mouseArea.containsMouse

Text {
text: i18n("Simple Radio Player")
font.bold: true
color: "white"
}

Text {
text: (playMusic.metaData.title === undefined) ? i18n("Unknown") : playMusic.metaData.title
color: "white"
}
}

function startStop() {
if (isPlaying())
playMusic.stop()
else {
playMusic.source = root.url
playMusic.play()
}

root.source = getIcon()
}

function getIcon() {
return isPlaying() ? "media-playback-stop" : "media-playback-start"
}

function isPlaying() {
return playMusic.playbackState === MediaPlayer.PlayingState
}
}




έβγαλε αυτό το λάθος;

~/.local/share/plasma/plasmoids/org.netts.srp/contents/ui/main.qml:34:31: Expected token `,'

Και πως διορθώνεται;
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Radio widget με qml

Δημοσίευσηαπό Maras » 26 Νοέμ 2023, 23:47

Έχεις μια αγκύλη παραπάνω στον κώδικά σου.
“Long is the way, and hard, that out of hell leads up to light.”
Άβαταρ μέλους
Maras
saintTUX
saintTUX
 
Δημοσιεύσεις: 1560
Εγγραφή: 25 Ιούλ 2017, 12:49
Εκτύπωση

Re: Radio widget με qml

Δημοσίευσηαπό malos » 27 Νοέμ 2023, 00:57

Maras έγραψε:Έχεις μια αγκύλη παραπάνω στον κώδικά σου.


Λογικά στη γραμμή 34. Και να τη σβήσω θα μου βγάλει άλλο λάθος μετά οπότε το παρατάω ως προσπάθεια.

Θέλω να σε ρωτήσω, αν ξέρειςτο qt-designer ή το qt-creator. Λίγο που τα άνοιξα, κατάλαβα ότι αφορούν την εμφάνιση μόνο του widget που θέλεις να φτιάξεις.
Δεν βρήκα λειτυργικότητες. Έψαχνα ας πούμε πως να συνδέσω ένα ComboBox με κάποια λιστα λέξεων ή ένα PushButton με κάποια βιβλιοθήκη Multimedia.

Αυτά τα κάνεις μόνο με κώδικα; Δεν έχει κάποια εργαλεία να συνδέεις ένα στοιχείο με κάποια λειτουργικότητα;
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Radio widget με qml

Δημοσίευσηαπό Maras » 27 Νοέμ 2023, 01:19

Ρίξε μια ματιά σε αυτό το βίντεο για εισαγωγή:
https://www.youtube.com/watch?v=WTb99Rd3Vu0
“Long is the way, and hard, that out of hell leads up to light.”
Άβαταρ μέλους
Maras
saintTUX
saintTUX
 
Δημοσιεύσεις: 1560
Εγγραφή: 25 Ιούλ 2017, 12:49
Εκτύπωση

Re: Radio widget με qml

Δημοσίευσηαπό malos » 10 Δεκ 2023, 14:16

Σ' ευχαριστώ φίλε. Δεν κατάφερα να το παρακολουθήσω καλά. Κάποια στιγμή που θα είναι ανάγκη θα κάτσω να το μάθω σωστά.
Επειδή το ζητούμενο μου ήταν η δημιουργία ενός radio widget, τελικά το έκανα με κώδικα από κειμενογράφο.
Θα ποστάρω τον κώδικα σε άλλο νήμα για όποιον το βρει ενδιαφέρον το θέμα.

Να ' σαι καλά.
Επεξεργαστής: AMD Ryzen 9 5900x
Μνήμη Gskill 16gb (2X8gb), 3200 mh, CL 14
Μητρική: Asrock X570 phantom gaming X
Τροφοδοτικό: Corsair 850 platinum
Δίσκος: SSD Corsair MP600 (1 TB)
Άβαταρ μέλους
malos
saintTUX
saintTUX
 
Δημοσιεύσεις: 1251
Εγγραφή: 02 Νοέμ 2008, 12:00
Εκτύπωση

Re: Radio widget με qml

Δημοσίευσηαπό Maras » 10 Δεκ 2023, 14:43

Να είσαι καλά φίλε, αναμένουμε τον κώδικα!
“Long is the way, and hard, that out of hell leads up to light.”
Άβαταρ μέλους
Maras
saintTUX
saintTUX
 
Δημοσιεύσεις: 1560
Εγγραφή: 25 Ιούλ 2017, 12:49
Εκτύπωση


Επιστροφή στο Gadgets με Λογισμικό Ανοιχτού Κώδικα