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
 
Δημοσιεύσεις: 1234
Εγγραφή: 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
 
Δημοσιεύσεις: 1495
Εγγραφή: 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
 
Δημοσιεύσεις: 1234
Εγγραφή: 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
 
Δημοσιεύσεις: 1495
Εγγραφή: 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
 
Δημοσιεύσεις: 1234
Εγγραφή: 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
 
Δημοσιεύσεις: 1495
Εγγραφή: 25 Ιούλ 2017, 12:49
Εκτύπωση


  • ΣΧΕΤΙΚΑ ΘΕΜΑΤΑ
    ΑΠΑΝΤΗΣΕΙΣ
    ΠΡΟΒΟΛΕΣ
    ΣΥΓΓΡΑΦΕΑΣ

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