1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
|
<?xml version="1.0" encoding="UTF-8" ?>
<sect1 id="dcop-interface">
<sect1info>
<title
>Funções &DCOP;</title>
<authorgroup>
<author
><firstname
></firstname
> <surname
></surname
> <affiliation
><address
> <email
></email>
</address
></affiliation>
</author>
<othercredit role="translator"
><firstname
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>[email protected]</email
></address
></affiliation
><contrib
>Tradução</contrib
></othercredit
>
</authorgroup>
</sect1info>
<title
>Funções &DCOP;</title>
<para
>O &DCOP; pode ser invocado de várias formas no &kommander;. Primeiro, existe o método da consola </para>
<para
>dcop kmdr-executor-@pid KommanderIf changeWidgetText meuElemento <quote
>novo texto</quote
> </para>
<para
>Isto assume que você está dentro de um ficheiro do &kommander; e que tem acesso ao especial @pid, o qual contém o ID do processo. De facto, é mais simples substituir o <quote
>kmdr-executor-@pid</quote
> por @dcopid. Contudo, você poderá usar esta sintaxe (obviamente sem os especiais) a partir da linha de comandos ou com algum programa externo para alterar a janela do &kommander;. </para>
<para
>Dado que o &kommander; não tem um processador completo na sua fase 'Alpha', se você quiser usar o &DCOP; interno, que é muito mais rápido, a partir de outra janela da aplicação (o &DCOP; da consola é bastante lento), será mais complicado porque você precisa de dar bastantes informações, incluindo um protótipo da chamada. A chamada acima ficaria igual a: </para>
<para
>@dcop(@dcopid, KommanderIf, <quote
>enableWidget(QString, bool)</quote
>, Widget, true) </para>
<para
>Na altura em que isto foi escrito, você deverá saber que o encadeamento de chamadas de &DCOP; dentro de estruturas da linguagem de programação (como o <application
>bash</application
>) significa que você precisa de usar chamadas dos métodos a partir da consola. <emphasis
>Se usar o &DCOP; interno, todos os especiais do &kommander; serão executados primeiro e depois o programa será então executado.</emphasis
> </para>
<para
>Existe uma nova forma simplificada de usar o &DCOP; dentro do &kommander;, através de uma sintaxe de objectos. Digamos que você deseje alterar o texto num elemento chamado @CampoTexto1. Seria algo semelhante ao seguinte. </para>
<para
>@CampoTexto1.changeWidgetText(Novo texto) </para>
<para
>Como poderá ver, a nova sintaxe é muito simples, assim como é consistente visualmente com os grupos de funções. Todas as referências ao &DCOP; irão usar a nova sintaxe de objectos indicada acima. <emphasis
>Lembre-se por favor que, se for referenciar um elemento gráfico a partir do &DCOP; noutra janela ou com outra aplicação, o primeiro parâmetro será sempre o nome do elemento gráfico. Todas as funções são listadas aqui a começar pelo segundo parâmetro.</emphasis
> </para>
<sect2 id="dcop-globals">
<title
>O &DCOP; para Variáveis Globais</title>
<variablelist>
<varlistentry>
<term
>global(QString nomeVariavel)</term>
<listitem>
<para
>Devolve o valor da variável global indicada. Quando um programa é corrido dentro de uma janela do &kommander;, todas as variáveis (não-globais) definidas neste programa deixarão de existir depois de o programa terminar e, como tal, não estarão disponíveis para outros processos de programas ou numa nova instância do processo que invoca. O <quote
>âmbito</quote
> global significa que a variável irá existir para qualquer processo da janela até que esta seja fechada. Você poderá alterar estas variáveis em qualquer altura com uma chamada nova ao <function
>@setGlobal</function
>. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setGlobal(QString nomeVariavel, QString valor)</term>
<listitem>
<para
>Cria uma variável que é global para o processo da janela e atribui o valor a ela. Este valor poderá ser obtido com a chamada global(QString nomeVariavel) ou alterada de novo. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-all">
<title
>O &DCOP; para Todos os Elementos</title>
<variablelist>
<varlistentry>
<term
>changeWidgetText(QString texto)</term>
<listitem>
<para
>Este deverá ser mudado para 'setWidgetText' e este nome poderá vir a ficar obsoleto. Isto remove o texto apresentado no elemento gráfico e substitui-o pelo texto indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>enableWidget(bool activar)</term>
<listitem>
<para
>Activa ou desactiva um dado elemento gráfico. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>associatedText</term>
<listitem>
<para
>Devolve o texto associado com o elemento gráfico indicado. Este não é o mesmo que o texto apresentado. Será o <quote
>@widgetText</quote
> ou o texto e/ou programa usado para chegar ao valor apresentado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setAssociatedText(QString texto)</term>
<listitem>
<para
>Isto configura o texto por omissão do Texto do &kommander;. Isto é tipicamente igual a <quote
>@widgetText</quote
> para mostrar o que é introduzido no elemento gráfico. É pouco provável que tenha muita necessidade disto, mas se o fizer, será aqui. Aplica-se a todos os elementos que possam conter dados. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-box">
<title
>O &DCOP; para os Elementos ListBox e ComboBox</title>
<variablelist>
<varlistentry>
<term
>addListItem(QString item, int indice)</term>
<listitem>
<para
>Adiciona um item a um elemento ListBox no índice indicado. O índice da lista começa em zero. Para adicionar ao fim da lista, use -1. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addListItems(QStringList itens, int indice)</term>
<listitem>
<para
>Isto adiciona uma lista de cadeias de caracteres logo de uma vez. A lista deverá delimitada por caracteres <acronym
>EOL</acronym
> (\n - mudança de linha). Isto é útil, dado que poderá usar a 'bash' para derivar a lista de forma relativamente simples. Por exemplo, se usar @exec(ls -l ~/projectos | grep kmdr) para os itens, irá ter uma listagem dos ficheiros do &kommander; na sua pasta de projectos. O índice da lista começa em zero. Use o -1 para adicionar ao fim da lista. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>addUniqueItem(QString item)</term>
<listitem>
<para
>O 'addUniqueItem' irá adicionar um item ao fim da lista, somente se for único. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>clearList</term>
<listitem>
<para
>Remove todos os itens. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>removeListItem(int indice)</term>
<listitem>
<para
>Remove o item no índice indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>item(int indice)</term>
<listitem>
<para
>Devolve o texto do item no índice indicado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>setCurrentListItem(int indice)</term>
<listitem>
<para
>Configura o item actual (ou seleccionado) com o índice indicado. Aplica-se aos elementos ListBox e ComboBox. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-button">
<title
>O &DCOP; para os Elementos CheckBox e RadioButton</title>
<variablelist>
<varlistentry>
<term
>setChecked(QString nomeElemento, bool assinalado)</term>
<listitem>
<para
>Liga/desliga os elementos CheckBox ou RadioButton. </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2 id="dcop-tab">
<title
>O &DCOP; para os Elementos TabWidget</title>
<variablelist>
<varlistentry>
<term
>setCurrentTab(QString nomeElemento, int indice)</term>
<listitem>
<para
>Selecciona a página pelo índice nos TabWidgets. O índice começa em 0 (zero). </para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>
|