# &DCOP;-funktioner

Stefan
Asserhäll

    stefan.asserhall@comhem.se

Översättare

# &DCOP;-funktioner

&DCOP; kan anropas på flera sätt i &kommander;. Först metoden via terminalen:

dcop kmdr-executor-@pid KommanderIf changeWidgetText minKomponent ny text

Det här antar att du är inne i en &kommander; fil och har tillgång till specialvärdet @pid, som innehåller process-id. Det är i själva verket enklare att ersätta kmdr-executor-@pid med @dcopid. Du kan dock använda den här syntaxen (men förstås utan specialvärden) från kommandoraden eller vilket externt skript som helst för att ändra &kommander;-fönstret.

Eftersom &kommander; inte har en fullständig tolk i sin alfaversion, är det mer komplicerat om du vill använda den mycket snabbare interna &DCOP;-funktionen från ett annat programfönster (&DCOP; via terminalen är mycket långsamt), eftersom du måste ange mycket information, inklusive en prototyp av anropet. Anropet ovan skulle bli:

@dcop(@dcopid, KommanderIf, enableWidget(QString, bool), komponent, true)

När det här skrivs bör du vara medveten om att infoga &DCOP;-anrop inne i skriptspråkstrukturer (som bash) betyder att du måste använda anrop med terminalmetoden. Om du använder intern &DCOP; körs alla &kommander; specialvärden först och därefter körs skriptet.

Det finns ett nytt förenklat sätt att använda &DCOP; inne i &kommander; genom att använda en objektsyntax. Låt oss anta att du vill ändra texten i den grafiska komponenten @Radeditor1. Det skulle se ut så här:

@Radeditor1.changeWidgetText(Ny text)

Som du kan se är den nya syntaxen mycket enkel, samt visuellt överensstämmande med funktionsgrupper. Alla &DCOP;-referenser här använder den nya objektsyntaxen som listas ovan. Observera att om du hänvisar till en grafisk komponent via &DCOP; från ett annat fönster eller ett annat program är den första parametern alltid komponentnamnet. Alla funktioner listas här med början från den andra parametern.

## &DCOP; för globala variabler

global(QString variabelnamn)

  Returnerar den angivna globala variabelns värde. När ett skript körs från ett fönster i &kommander; upphör alla (icke-globala) variabler som anges i skriptet att existera efter skriptet är färdigt, och är därför inte tillgängliga för andra skriptprocesser eller i en ny instans av den anropande processen. Det globala omfattningen betyder att variabeln existerar för alla fönstrets processer ända till fönstret stängs. Du kan ändra variablerna när som helst med ett nytt anrop till `@setGlobal`.

setGlobal(QString variabelnamn, QString värde)

  Skapar en variabel som är global i fönsterprocessen och tilldelar värdet till den. Värdet kan hämtas med global(QString variabelnamn) eller tilldelas igen.

## &DCOP; för alla grafiska komponenter

changeWidgetText(QString text)

  Det här bör heta setWidgetText, och användning av det här namnet kommer troligen att avrådas från. Det tar bort texten som visas i den grafiska komponenten och ersätter den med den angivna texten.

enableWidget(bool aktivera)

  Aktiverar eller inaktiverar en grafisk komponent.

associatedText

  Returnerar texten som är associerad med den angivna grafiska komponenten. Det är inte samma som texten som visas. Det skulle vara @widgetText eller texten och/eller skriptet som används för att erhålla det visade värdet.

setAssociatedText(QString text)

  Det här tilldelar den förvalda strängen för &kommander; text. Den tilldelas typiskt värdet @widgetText för att visa vad som skrivs in i komponenten. Det är inte troligt att du har mycket nytta av det, men om du gör det finns det där. Gäller alla grafiska komponenter som kan innehålla data.

## &DCOP; för listrutor och kombinationsrutor

addListItem(QString objekt, int index)

  Lägger till ett objekt i en listruta på angivet index. Listindex börjar på noll. För att lägga till i slutet på listan, använd -1.

addListItems(QStringList objekt, int index)

  Det här lägger till en stränglista på en gång. Listan ska avdelas av nyrader (\n - nyrader). Det är bekvämt eftersom du kan använda bash för att ganska enkelt få fram listan. Att till exempel använda @exec(s -l ~/projects | grep kmdr) som objekt, ger en kataloglistning med &kommander; filer i din projektkatalog. Listindex börjar med 0. Använd -1 för att lägga till sist i listan.

addUniqueItem(QString objekt)

  addUniqueItem lägger till ett objekt i slutet på listan, men bara om det är unikt.

clearList

  Tar bort alla objekt.

removeListItem(int index)

  Tar bort objektet vid angivet index.

item(int index)

  Returnerar texten för objektet på angivet index.

setCurrentListItem(int index)

  Tilldela nuvarande (eller markerat) objekt till angivet index. Gäller de grafiska komponenterna listruta och kombinationsruta.

## &DCOP; för kryssrutor och alternativknappar

setChecked(QString komponentnamn, bool markerad)

  Markerar/avmarkerar en kryssruta eller alternativknapp.

## &DCOP; for flikkomponenter

setCurrentTab(QString komponentnamn, int index)

  Väljer fliken med index för flikkomponenter. Index börjar med 0.