Skip to main content
Passa al contenuto

Messaggi in linea

Visualizza i messaggi relativi al contenuto della tua applicazione

I messaggi in linea ti forniscono un modo immediato per poter notificare agli utenti qualcosa che sta accadendo mentre utilizzano l'applicazione.

Messaggi in linea di base

I componenti Kirigami.InlineMessage hanno due importanti proprietà di cui tenere conto:

  • visible: per impostazione predefinita è impostato su false, in modo che il messaggio venga visualizzato solo quando lo desideri esplicitamente. Questo può essere sovrascritto se lo desideri impostandolo su true. Quando un messaggio in linea nascosto è impostato per essere visibile, ottieni una bella animazione.
  • testo: qui è dove imposti il ​​testo del tuo messaggio in linea.
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls as Controls
import org.kde.kirigami as Kirigami

Kirigami.Page {

    ColumnLayout {
        Kirigami.InlineMessage {
            id: inlineMessage
            Layout.fillWidth: true
            text: "Hello! I am a siiiiiiimple lil' inline message!"
        }

        Controls.Button {
            text: "Show inline message!"
            onClicked: inlineMessage.visible = !inlineMessage.visible
        }
    }
}
Una finestra che mostra un pulsante che, quando viene cliccato, fa apparire un messaggio in linea con sfondo azzurro con testo sopra, vicino alla parte superiore dell'applicazione

Tipi diversi

I messaggi in linea standard sono come quelli sopra: hanno uno sfondo blu e un'icona predefinita. Possiamo cambiarlo con la proprietà type, che ci consente di impostare il nostro messaggio in linea su un tipo diverso. Ci sono quattro tipi tra cui possiamo scegliere:

  • Informazione (Kirigami.MessageType.Information): il predefinito. Ha uno sfondo blu e un'icona i. Viene utilizzato per annunciare un risultato o per dire all'utente qualcosa di generale. Non è necessario impostarlo manualmente.
  • Positivo (Kirigami.MessageType.Positive): ha uno sfondo verde, un'icona con un segno di spunta. Indica che qualcosa è andato bene.
  • Attenzione (Kirigami.MessageType.Warning): ha uno sfondo arancione e un'icona a punto esclamativo. Può essere utilizzato per avvisare l'utente di qualcosa di cui dovrebbe essere consapevole.
  • Errore (Kirigami.MessageType.Error): ha uno sfondo rosso e un'icona a croce. Può essere utilizzato per dire all'utente che qualcosa è andato storto.
ColumnLayout {

    Kirigami.InlineMessage {
        Layout.fillWidth: true
        text: "Hello! Let me tell you something interesting!"
        visible: true
    }

    Kirigami.InlineMessage {
        Layout.fillWidth: true
        text: "Hey! Let me tell you something positive!"
        type: Kirigami.MessageType.Positive
        visible: true
    }

    Kirigami.InlineMessage {
        Layout.fillWidth: true
        text: "Hmm... You should keep this in mind!"
        type: Kirigami.MessageType.Warning
        visible: true
    }
    
    Kirigami.InlineMessage {
        Layout.fillWidth: true
        text: "Argh!!! Something went wrong!!"
        type: Kirigami.MessageType.Error
        visible: true
    }

}
Una finestra che mostra tutti e quattro i tipi di messaggi in linea in blu, verde, arancione e rosso

Personalizzazione di testo e icone

I messaggi in linea supportano il testo formattato, che può essere definito con dei semplici marcatori come nell'HTML. Questo ti permette di aggiungere una formattazione al testo dei tuoi messaggi in linea, o persino di includere un collegamento a un sito web esterno, se vuoi.

Kirigami.InlineMessage {
    Layout.fillWidth: true
    // Nota che quando in una stringa utilizzi le virgolette, allora devi usare un carattere di
    // escape!
    text: "Check out <a href=\"https://kde.org\">KDE's website!<a/>"
    onLinkActivated: Qt.openUrlExternally(link)
    visible: true
}
Un messaggio in linea con del testo formattato

Puoi anche personalizzare l'icona che appare in alto a sinistra del tuo messaggio fornendo un nome di icona di sistema per la proprietà icon.source. Questi nomi di icone dovrebbero corrispondere alle icone installate sul tuo sistema; puoi utilizzare un'applicazione come Cuttlefish fornita da plasma-sdk per sfogliare e cercare le icone disponibili sul tuo sistema e vedere quali sono i loro nomi.

Kirigami.InlineMessage {
    Layout.fillWidth: true
    text: "Look at me! I look SPECIAL!"
    icon.source: "actor"
    visible: true
}
Un messaggio in linea con un'icona personalizzata

Usare le azioni nei messaggi in linea

Se i tuoi messaggi devono essere interattivi, puoi allegare azioni Kirigami ai tuoi messaggi in linea. Come con le pagine, puoi farlo impostando la proprietà InlineMessage.actions su un Kirigami.Action o un array contenente Componenti Kirigami.Action.

ColumnLayout {

    Kirigami.InlineMessage {
        id: actionsMessage
        Layout.fillWidth: true
        visible: true

        readonly property string initialText: "Something is hiding around here..."
        text: initialText

        actions: [
            Kirigami.Action {
                enabled: actionsMessage.text == actionsMessage.initialText
                text: qsTr("Add text")
                icon.name: "list-add"
                onTriggered: {
                    actionsMessage.text = actionsMessage.initialText + " Peekaboo!";
                }
            },
            Kirigami.Action {
                enabled: actionsMessage.text != actionsMessage.initialText
                text: qsTr("Reset text")
                icon.name: "list-remove"
                onTriggered: actionsMessage.text = actionsMessage.initialText
            }
        ]
    }
}
Un messaggio in linea con due azioni

Pulsante di chiusura

I messaggi in linea forniscono un pulsante di chiusura, che può essere usato per rimuoverli con facilità.

Per impostazione predefinita, questo pulsante di chiusura è nascosto, ma può essere ignorato impostando la proprietà showCloseButton su "true".

Kirigami.InlineMessage {
    Layout.fillWidth: true
    text: "Please don't dismiss me..."
    showCloseButton: true
    visible: true
}
Un messaggio in linea con il pulsante di chiusura sul lato destro