Puncte:0

Cum se adaugă spațiere între pictogramele din bara de sistem în Plasma 5.22?

drapel cn

Mi-am petrecut ziua de azi personalizând laptopul. Am reusit sa fac asta:

captură de ecran personalizată

Acum problema cu cele de mai sus este la această regiune specifică din bara de meniu de sus:

captură de ecran din bara de sistem

Acest plasmoid din bara de sistem nu oferă nicio setare pentru a configura spațierea și, așa cum am fost îndrumat de multe alte ghiduri, ar trebui să editez acest fișier cunoscut ca /usr/share/plasma/plasmoids/org.kde.plasma.private.systemtray/contents/ui/main.qml

După cum puteți vedea în captura de ecran, am încercat mai întâi să găsesc această opțiune cunoscută ca spatie: 0 dar am descoperit că oamenii de la kde l-au schimbat într-un aspect de grilă cu columnSpacing și rowSpacing parametrii. Am incercat sa le modific dar nu am obtinut niciun rezultat. Am încercat chiar să adaug spaţiere parametru de unul singur, dar nici asta nu a funcționat. Deci, există oricum pentru a modifica fișierul qml în Plasma 5.22 pentru a obține o spațiere personalizată între pictograme din bara de sistem.

Iată fișierul qml dacă este necesar:

/*
 * Drepturi de autor 2011 Marco Martin <[email protected]>
 * Copyright 2020 Konrad Materka <[email protected]>
 *
 * Acest program este software gratuit; îl puteți redistribui și/sau modifica
 * în conformitate cu termenii Licenței Publice Generale a Bibliotecii GNU ca
 * publicat de Free Software Foundation; fie versiunea 2, fie
 * (la alegerea dvs.) orice versiune ulterioară.
 *
 * Acest program este distribuit în speranța că va fi util,
 * dar FĂRĂ NICIO GARANȚIE; fără măcar garanția implicită a
 * VANTABILITATE sau ADECVENȚĂ PENTRU UN ANUMIT SCOP. Vezi
 * GNU Library General Public License pentru mai multe detalii
 *
 * Ar fi trebuit să primiți o copie a Bibliotecii GNU General Public
 * Licență împreună cu acest program; dacă nu, scrie la
 * Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, SUA.
 */

importa QtQuick 2.5
import QtQuick.Layouts 1.1
importați org.kde.plasma.core 2.1 ca PlasmaCore
import org.kde.plasma.plasmoid 2.0
importați org.kde.dragandrop 2.0 ca DnD
importați org.kde.kirigami 2.5 ca Kirigami

importa "articole"

MouseArea {
    id: rădăcină

    proprietate readonly bool vertical: plasmoid.formFactor === PlasmaCore.Types.Vertical

    Layout.minimumWidth: vertical ? PlasmaCore.Units.iconSizes.small : mainLayout.implicitWidth + PlasmaCore.Units.smallSpacing
    Layout.minimumHeight: vertical ? mainLayout.implicitHeight + PlasmaCore.Units.smallSpacing : PlasmaCore.Units.iconSizes.small

    LayoutMirroring.enabled: !vertical && Qt.application.layoutDirection === Qt.RightToLeft
    LayoutMirroring.childrenInherit: adevărat

    alias de proprietate numai în citire systemTrayState: systemTrayState
    alias de proprietate numai în citire itemSize: tasksGrid.itemSize
    Alias ​​de proprietate numai în citire visibleLayout: tasksGrid
    Alias ​​de proprietate numai în citire hiddenLayout: expandedRepresentation.hiddenLayout

    pe roată: {
        // Nu propaga evenimente de roată necontrolate
        roată.acceptat = adevărat;
    }

    SystemTrayState {
        id: systemTrayState
    }

    //fiind acolo forțează elementele să se încarce complet, iar acestea vor fi reparentate în fereastra pop-up unul câte unul, acest articol nu este *niciodată* vizibil
    articol {
        id: preloadedStorage
        vizibil: fals
    }

    CurrentItemHighLight {
        localizare: plasmoid.localizare
        părinte: rădăcină
    }

    DnD.DropArea {
        ancore.fill: părinte

        previne Furtul: adevărat;

        /** Extrage numele applet-ului barei de sistem din datele de glisare, dacă este prezent
         * altfel returnează null*/
        funcția systemTrayAppletName(eveniment) {
            if (event.mimeData.formats.indexOf("text/x-plasmoidservicename") < 0) {
                returnează nul;
            }
            var plasmoidId = event.mimeData.getDataAsByteArray("text/x-plasmoidservicename");

            dacă (!plasmoid.nativeInterface.isSystemTrayApplet(plasmoidId)) {
                returnează nul;
            }
            return plasmoidId;
        }

        onDragEnter: {
            dacă (!systemTrayAppletName(eveniment)) {
                event.ignore();
            }
        }

        onDrop: {
            var plasmoidId = systemTrayAppletName(eveniment);
            if (!plasmoidId) {
                event.ignore();
                întoarcere;
            }

            if (plasmoid.configuration.extraItems.indexOf(plasmoidId) < 0) {
                var extraItems = plasmoid.configuration.extraItems;
                extraItems.push(plasmoidId);
                plasmoid.configuration.extraItems = extraItems;
            }
        }
    }

    //Aspect principal
    GridLayout {
        id: mainLayout

        rowSpacing: 0
        spațiere coloane: 0

        ancore.fill: părinte

        flux: vertical ? GridLayout.TopToBottom : GridLayout.LeftToRight

        GridView {
            id: tasksGrid

            Layout.alignment: Qt.AlignCenter

            interactiv: false //dezactivează funcțiile de care nu avem nevoie
            flux: vertical ? GridView.LeftToRight : GridView.TopToBottom

            // Dimensiunea pictogramei de afișat atunci când nu utilizați setarea de scalare automată
            proprietate readonly int smallIconSize: PlasmaCore.Units.iconSizes.smallMedium
            proprietate readonly bool autoSize: plasmoid.configuration.scaleIconsToFit

            proprietate readonly int gridThickness: root.vertical ? root.width : root.height
            // Ar trebui să se schimbe la 2 rânduri/coloane pe un panou de 56 px (în DPI standard)
            proprietate readonly int rowsOrColumns: autoSize ? 1 : Math.max(1, Math.min(număr, Math.floor(gridThickness / (smallIconSize + PlasmaCore.Units.smallSpacing))))

            // Adăugați margini numai dacă panoul este mai mare decât o pictogramă mică (pentru a evita spațiile mari între pictogramele mici)
            proprietate readonly int smallSizeCellLength: gridThickness < smallIconSize ? smallIconSize : smallIconSize + PlasmaCore.Units.smallSpacing * 2
            CellHeight: {
                dacă (rădăcină.verticală) {
                    returnează autoSize? root.width + PlasmaCore.Units.smallSpacing : smallSizeCellLength
                } altfel {
                    returnează autoSize? root.height : Math.floor(root.height / rowsOrColumns)
                }
            }
            cellWidth: {
                dacă (rădăcină.verticală) {
                    returnează autoSize? root.width : Math.floor(root.width / rowsOrColumns)
                } altfel {
                    returnează autoSize? root.height + PlasmaCore.Units.smallSpacing : smallSizeCellLength
                }
            }

            //în funcție de factorul de formă, calculăm o singură dimensiune, a doua este întotdeauna aceeași cu rădăcină/părinte
            implicitHeight: root.vertical ? cellHeight * Math.ceil(count / rowsOrColumns) : root.height
            implicitWidth: !root.vertical ? cellWidth * Math.ceil(count / rowsOrColumns) : root.width

            // Folosit numai de AbstractItem, dar este cel mai ușor să-l păstrați aici de când este
            // folosește dimensiunile din acest articol pentru a calcula valoarea finală
            proprietate numai citire int itemSize: {
                if (autoSize) {
                    dimensiune const = Math.min(Lățime implicită / rowsOrColumns, implicitHeight / rowsOrColumns)
                    return PlasmaCore.Units.roundToIconSize(Math.min(size, PlasmaCore.Units.iconSizes.enormous))
                } altfel {
                    returnează smallIconSize
                }
            }

            model: PlasmaCore.SortFilterModel {
                sourceModel: plasmoid.nativeInterface.systemTrayModel
                filterRole: „effectiveStatus”
                filterCallback: function(source_row, value) {
                    valoarea returnată === PlasmaCore.Types.ActiveStatus
                }
            }

            delegat: ItemLoader {}

            adăugați: Tranziție {
                activat: itemSize > 0

                NumberAnimation {
                    proprietate: "scale"
                    de la: 0
                    la: 1
                    easing.type: Easing.InOutQuad
                    durata: PlasmaCore.Units.longDuration
                }
            }

            deplasat: tranziție {
                //asigură-te că valoarea scalei revine la 1.0
                //https://doc.qt.io/qt-5/qml-qtquick-viewtransition.html#handling-interrupted-animations
                NumberAnimation {
                    proprietate: "scale"
                    la: 1
                    easing.type: Easing.InOutQuad
                    durata: PlasmaCore.Units.longDuration
                }
            }

            mutare: tranziție {
                NumberAnimation {
                    proprietăți: "x,y"
                    easing.type: Easing.InOutQuad
                    durata: PlasmaCore.Units.longDuration
                }
            }
        }

        ExpanderArrow {
            id: expander
            Layout.fillWidth: verticală
            Layout.fillHeight: !vertical
            Layout.alignment: vertical ? Qt.AlignVCenter : Qt.AlignHCenter
            vizibil: root.hiddenLayout.itemCount > 0
        }
    }

    //Fără pop-up principală
    PlasmaCore.Dialog {
        id: dialog
        visualParent: rădăcină
        steaguri: Qt.WindowStaysOnTopHint
        localizare: plasmoid.localizare
        hideOnWindowDeactivate: !plasmoid.configuration.pin
        vizibil: systemTrayState.expanded

        onVisibleChanged: {
            systemTrayState.expanded = vizibil
        }
        mainItem: ExpandedRepresentation {
            id: expandedRepresentation

            Keys.onEscapePressed: {
                systemTrayState.expanded = fals
            }

            LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft
            LayoutMirroring.childrenInherit: adevărat
        }
    }
}

Nu am reușit să găsesc nicio setare asociată în aplicația de setări.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.