diff options
Diffstat (limited to 'tde-i18n-pt/docs/tdevelop')
-rw-r--r-- | tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook | 40 | ||||
-rw-r--r-- | tde-i18n-pt/docs/tdevelop/kdearch/index.docbook | 46 |
2 files changed, 43 insertions, 43 deletions
diff --git a/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook index ec09cd92b61..647f8662dba 100644 --- a/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook +++ b/tde-i18n-pt/docs/tdevelop/kde_app_devel/index.docbook @@ -160,15 +160,15 @@ return a.exec(); </orderedlist> </para> <para>O segundo objecto do nosso programa é o botão, uma instância da classe <classname>QPushButton</classname>. A partir dos dois construtores fornecidos para criar uma instância, nós optámos pelo segundo: este aceita um texto, o qual é o conteúdo do texto do botão; neste caso, é o texto "Olá mundo!". Aí, chamou-se o método <methodname>resize()</methodname> para alterar as dimensões do botão de acordo com o seu conteúdo - o botão tem de ser maior para tornar o texto completamente visível. </para> -<para>Mas e o método <methodname>show()</methodname>? Agora, você verá que, como a maioria dos outros itens, a classe <classname>QPushButton</classname> baseia-se numa herança simples ou, como diz a documentação, herda de <classname>QButton</classname>. Siga a referência à classe <classname>QButton</classname>. Isto mostra-lhe que bastantes outros itens herdados pela <classname>QPushButton</classname>, os quais iremos usar posteriormente para explicar o mecanismo de 'signals'/'slots' De qualquer forma, o método <methodname>show()</methodname> não aparece, como tal, deverá ser um método que é fornecido por herança, da mesma forma. A classe que a <classname>QButton</classname> herda é a <classname>QWidget</classname>. Siga de novo a ligação e você irá ver um conjunto enorme de classes que a <classname>QWidget</classname> oferece, incluindo o método <methodname>show()</methodname>. Agora dá para perceber o que foi feito no exemplo com o botão: <orderedlist> +<para>Mas e o método <methodname>show()</methodname>? Agora, você verá que, como a maioria dos outros itens, a classe <classname>QPushButton</classname> baseia-se numa herança simples ou, como diz a documentação, herda de <classname>QButton</classname>. Siga a referência à classe <classname>QButton</classname>. Isto mostra-lhe que bastantes outros itens herdados pela <classname>QPushButton</classname>, os quais iremos usar posteriormente para explicar o mecanismo de 'signals'/'slots' De qualquer forma, o método <methodname>show()</methodname> não aparece, como tal, deverá ser um método que é fornecido por herança, da mesma forma. A classe que a <classname>QButton</classname> herda é a <classname>TQWidget</classname>. Siga de novo a ligação e você irá ver um conjunto enorme de classes que a <classname>TQWidget</classname> oferece, incluindo o método <methodname>show()</methodname>. Agora dá para perceber o que foi feito no exemplo com o botão: <orderedlist> <listitem><para>Cria uma instância de <classname>QPushButton</classname>, utiliza o segundo construtor para configurar o texto do botão</para></listitem> <listitem><para>Muda o tamanho do 'widget' de acordo com o seu conteúdo</para></listitem> <listitem><para>Escolhe o 'widget' como o 'widget' principal da instância do <classname>QApplication</classname> como</para></listitem> -<listitem><para>Diz ao 'widget' para se mostrar no ecrã chamando <methodname>show()</methodname>, um método herdado de <classname>QWidget</classname></para></listitem> +<listitem><para>Diz ao 'widget' para se mostrar no ecrã chamando <methodname>show()</methodname>, um método herdado de <classname>TQWidget</classname></para></listitem> </orderedlist> </para> <para>Depois de invocar o método <methodname>exec()</methodname>, a aplicação fica visível para o utilizador, mostrando uma janela com o botão a dizer "Olá mundo!". Nota: os programas gráficos comportam-se de forma ligeiramente diferente da das aplicações procedimentais. A questão principal aqui é que a aplicação entra num estado chamado de "ciclo de eventos principal". Isto significa que o programa tem de esperar pelas acções do utilizador e então reagir a elas e que, numa aplicação do Qt, o programa terá de entrar no ciclo de eventos principal para conseguir começar a tratá-los. A próxima secção diz-lhe em resumo o que isto significa para o programador e o que é que o Qt oferece para processar os eventos do utilizador. </para> -<note><para>Para os utilizadores já avançados: O botão não tem nenhuma janela-mãe declarada no construtor, o que significa que é um item gráfico de topo por si só e corre num ciclo de eventos local que não precisa de esperar pelo ciclo de eventos principal. Veja a documentação da classe QWidget e o Guia de Referência da Biblioteca do KDE</para> +<note><para>Para os utilizadores já avançados: O botão não tem nenhuma janela-mãe declarada no construtor, o que significa que é um item gráfico de topo por si só e corre num ciclo de eventos local que não precisa de esperar pelo ciclo de eventos principal. Veja a documentação da classe TQWidget e o Guia de Referência da Biblioteca do KDE</para> </note> </sect3> @@ -183,7 +183,7 @@ return a.exec(); </itemizedlist> </para> <para>Agora vamos dar "vida" à aplicação, processando os eventos do utilizador. De um modo geral, o utilizador tem duas formas de interagir com um programa: o rato e o teclado. Para ambas as formas, uma interface gráfica tem de fornecer métodos que detectem as acções e métodos que façam algo em reacção a estas acções. </para> -<para>O sistema de janelas envia deste modo todos os eventos de interacção para a aplicação respectiva. A <classname>QApplication</classname> envia-os então para a janela activa como um <classname>QEvent</classname> e os próprios itens terão de decidir o que fazer com eles. Um item recebe o evento e processa o <methodname>QWidget::event(QEvent*)</methodname>, que decide então qual o evento que foi executado e como reagir; o <methodname>event()</methodname> é deste modo o tratador de eventos principal. Aí, o método <methodname>event()</methodname> passa o evento para os denominados de filtros de eventos que determinam o que se passou e o que fazer com o evento. Se nenhum filtro responder como responsável pelo evento, os tratadores de eventos especializados são invocados. Deste modo, pode-se optar entre: <itemizedlist> +<para>O sistema de janelas envia deste modo todos os eventos de interacção para a aplicação respectiva. A <classname>QApplication</classname> envia-os então para a janela activa como um <classname>QEvent</classname> e os próprios itens terão de decidir o que fazer com eles. Um item recebe o evento e processa o <methodname>TQWidget::event(QEvent*)</methodname>, que decide então qual o evento que foi executado e como reagir; o <methodname>event()</methodname> é deste modo o tratador de eventos principal. Aí, o método <methodname>event()</methodname> passa o evento para os denominados de filtros de eventos que determinam o que se passou e o que fazer com o evento. Se nenhum filtro responder como responsável pelo evento, os tratadores de eventos especializados são invocados. Deste modo, pode-se optar entre: <itemizedlist> <listitem><para>Eventos de teclados -- teclas TAB e Shift-TAB:</para> <itemizedlist> <listitem><para><methodname>virtual void focusInEvent(QFocusEvent *)</methodname></para></listitem> @@ -224,12 +224,12 @@ return a.exec(); </itemizedlist> </para> -<para>Lembre-se que todas as funções de eventos são virtuais e protegidas; como tal, você poderá reimplementar os eventos que necessitar nos seus próprios itens gráficos e indicar como é que o seu item terá de reagir. O <classname>QWidget</classname> contém também outros métodos virtuais que poderão ser úteis nos seus programas; de qualquer forma, é suficiente conhecer o <classname>QWidget</classname> bastante bem. </para> +<para>Lembre-se que todas as funções de eventos são virtuais e protegidas; como tal, você poderá reimplementar os eventos que necessitar nos seus próprios itens gráficos e indicar como é que o seu item terá de reagir. O <classname>TQWidget</classname> contém também outros métodos virtuais que poderão ser úteis nos seus programas; de qualquer forma, é suficiente conhecer o <classname>TQWidget</classname> bastante bem. </para> </sect2> <sect2 id="c1s2s4"> <title>Interacção de Objectos através de 'Signals' e 'Slots'</title> <para>Agora chegámos às vantagens mais óbvias da plataforma do Qt: o mecanismo de 'signals'/'slots'. Isto oferece uma solução bastante útil e fácil de os objectos interagirem entre si, o que normalmente é resolvido por funções de resposta ('callback') pelas bibliotecas do X-Window. Dado que esta documentação necessita de uma programação restrita e normalmente torna a criação de interface do utilizador muito complicada (como é referido pela documentação do Qt e é explicado no texto 'Programming with Qt' de K.Dalheimer), a Troll Tech inventou um novo sistema onde os objectos podem emitir sinais ('signals') que podem estar associados a métodos denominados por 'slots'. Para a parte de C++ do programador, ele só terá de conhecer algumas coisas sobre este mecanismo: <itemizedlist> -<listitem><para>a declaração de uma classe que utilize 'signals'/'slots' tem que ter a macro TQ_OBJECT no início (sem ponto e vírgula); e tem que ser derivada da classe <classname>QObject</classname> </para></listitem> +<listitem><para>a declaração de uma classe que utilize 'signals'/'slots' tem que ter a macro TQ_OBJECT no início (sem ponto e vírgula); e tem que ser derivada da classe <classname>TQObject</classname> </para></listitem> <listitem><para>um 'signal' pode ser emitido através da palavra chave 'emit', por exemplo, emit signal(parâmetros);, de qualquer método membro de uma classe que permite 'signals'/'slots' </para></listitem> <listitem><para>todos os 'signals' utilizados pelas classes que não são herdados tem que ser adicionados à declaração da classe numa secção 'signals' </para></listitem> @@ -237,9 +237,9 @@ return a.exec(); <listitem><para>o compilador de meta-objectos 'moc' tem de correr sobre o ficheiro de inclusão para expandir as macros e para produzir a implementação (que é necessário conhecer). Os ficheiros de resultado do 'moc' são compilados também pelo compilador de C++. </para></listitem> </itemizedlist> </para> -<para>Outra forma de usar os 'signals' sem derivar da classe <classname>QObject</classname> é usar a classe <classname>QSignal</classname> - veja a documentação de referência para mais informações e para um exemplo de utilização. No seguinte, assume-se que você vai derivar de <classname>QObject</classname>. </para> +<para>Outra forma de usar os 'signals' sem derivar da classe <classname>TQObject</classname> é usar a classe <classname>QSignal</classname> - veja a documentação de referência para mais informações e para um exemplo de utilização. No seguinte, assume-se que você vai derivar de <classname>TQObject</classname>. </para> <para>Desta forma, a sua classe é capaz de enviar 'signals' para todo o lado e consegue fornecer 'slots' aos quais os 'signals' se possam ligar. Usando os 'signals', você não terá de se preocupar com que os recebe - só tem de emitir os 'signals' e qual o 'slot' que lhe deseja ligar para reagir à emissão. Os 'slots' também podem ser usados como métodos normais durante a implementação. </para> -<para>Agora, para ligar um 'signal' a um 'slot', você terá de usar os métodos <methodname>connect()</methodname> que são fornecidos pelo <classname>QObject</classname> ou, quando for possível, os métodos especiais que os objectos fornecem para definir a ligação a um dado 'signal'. </para> +<para>Agora, para ligar um 'signal' a um 'slot', você terá de usar os métodos <methodname>connect()</methodname> que são fornecidos pelo <classname>TQObject</classname> ou, quando for possível, os métodos especiais que os objectos fornecem para definir a ligação a um dado 'signal'. </para> <sect3 id="c1s2s4s1"> <title>Exemplo de Utilização</title> @@ -262,9 +262,9 @@ return a.exec(); } </programlisting> </para> -<para>Como vê, a única adição para dar ao botão mais interacção é usar um método <methodname>connect() </methodname>: o <methodname>connect(&ola, SIGNAL( clicked() ), &a, SLOT( quit() ))</methodname>; é tudo o que você tem para adicionar. Qual é o significado? A declaração da classe do QObject fala sobre o método <methodname>connect()</methodname>: </para> -<para><methodname>bool connect ( const QObject * emissor, const char * signal, const QObject * receptor, const char * membro ) </methodname></para> -<para>Isto significa que você terá de indicar um ponteiro para uma instância de um <classname>QObject</classname> que é o emissor do 'signal', o que significa que ele poderá emitir este 'signal' como primeiro parâmetro; depois, terá de indicar o 'signal' a que se deseja ligar. Os últimos dois parâmetros são o objecto receptor que contém um 'slot' seguido da função-membro que é, de facto, o 'slot' que será executado devido à emissão do 'signal'. </para> +<para>Como vê, a única adição para dar ao botão mais interacção é usar um método <methodname>connect() </methodname>: o <methodname>connect(&ola, SIGNAL( clicked() ), &a, SLOT( quit() ))</methodname>; é tudo o que você tem para adicionar. Qual é o significado? A declaração da classe do TQObject fala sobre o método <methodname>connect()</methodname>: </para> +<para><methodname>bool connect ( const TQObject * emissor, const char * signal, const TQObject * receptor, const char * membro ) </methodname></para> +<para>Isto significa que você terá de indicar um ponteiro para uma instância de um <classname>TQObject</classname> que é o emissor do 'signal', o que significa que ele poderá emitir este 'signal' como primeiro parâmetro; depois, terá de indicar o 'signal' a que se deseja ligar. Os últimos dois parâmetros são o objecto receptor que contém um 'slot' seguido da função-membro que é, de facto, o 'slot' que será executado devido à emissão do 'signal'. </para> <para>Usando os 'signals' e 'slots', os objectos do seu programa podem interagir uns com os outros facilmente sem terem de explicitamente depender do tipo do objecto receptor. Você irá aprender mais sobre a utilização deste mecanismo para uma utilização produtiva posteriormente neste manual. Se quiser saber mais informações sobre o mecanismo de 'signals'/'slots' poderá ir ao <ulink url="developer.kde.org/documentation/library/libraryref.html">Guia de Referência da Biblioteca do KDE</ulink> e à <ulink url="doc.trolltech.com">referência 'online' do Qt</ulink>. </para> </sect3> </sect2> @@ -313,7 +313,7 @@ return a.exec(); </para> <para>Você irá constatar que, primeiro, mudámos da <classname>QApplication</classname> para a <classname>TDEApplication </classname>. Para além disso, tivemos de mudar o método <methodname>setMainWidget()</methodname> para <methodname>setTopWidget</methodname>, o qual a classe <classname>TDEApplication</classname> usa para indicar qual o item principal. É tudo! A sua primeira aplicação do KDE está pronta - você só terá de indicar ao compilador a localização dos ficheiros de inclusão e ao editor de ligações para compilar com a biblioteca 'tdecore', através da opção'-ltdecore'. </para> <para>Dado que já sabe o que, pelo menos, a função <function>main()</function> necessita geralmente e como é que uma aplicação fica visível e permite a interacção com o utilizador e com os objectos, iremos agora para o próximo capítulo, onde a nossa primeira aplicação será criada com o &tdevelop;. Aí, você também poderá testar tudo o que foi mencionado antes e ver os efeitos. </para> -<para>O que você deverá ter olhado adicionalmente até agora é a documentação de referência do Qt, especialmente a as classes <classname>QApplication</classname>, <classname>QWidget</classname> e <classname>QObject </classname>, assim como a documentação da biblioteca 'tdecore' para a classe <classname>TDEApplication</classname>. O <ulink url="developer.kde.org/documentation/library/libraryref.html">Manual de Referência da Biblioteca do KDE</ulink> também cobre uma descrição completa da invocação dos construtores da <classname>QApplication</classname> e da <classname>TDEApplication</classname>, incluindo o processamento dos argumentos da linha de comandos. </para> +<para>O que você deverá ter olhado adicionalmente até agora é a documentação de referência do Qt, especialmente a as classes <classname>QApplication</classname>, <classname>TQWidget</classname> e <classname>TQObject </classname>, assim como a documentação da biblioteca 'tdecore' para a classe <classname>TDEApplication</classname>. O <ulink url="developer.kde.org/documentation/library/libraryref.html">Manual de Referência da Biblioteca do KDE</ulink> também cobre uma descrição completa da invocação dos construtores da <classname>QApplication</classname> e da <classname>TDEApplication</classname>, incluindo o processamento dos argumentos da linha de comandos. </para> </sect2> </sect1> @@ -549,10 +549,10 @@ return a.exec(); 16 statusBar()->show(); 17 18 // permitir à vista mudar a barra de estado e o título -19 connect(m_view, SIGNAL(signalChangeStatusbar(const QString&)), -20 this, SLOT(changeStatusbar(const QString&))); -21 connect(m_view, SIGNAL(signalChangeCaption(const QString&)), -22 this, SLOT(changeCaption(const QString&))); +19 connect(m_view, SIGNAL(signalChangeStatusbar(const TQString&)), +20 this, SLOT(changeStatusbar(const TQString&))); +21 connect(m_view, SIGNAL(signalChangeCaption(const TQString&)), +22 this, SLOT(changeCaption(const TQString&))); 23 24 } </programlisting> @@ -584,7 +584,7 @@ return a.exec(); </itemizedlist> </para> <para>Escusado será dizer que a estabilidade é um grande objectivo de desenho. Ninguém poderá evitar os erros, mas poderemos obter um mínimo se tivermos objectivos de desenho inteligentes e um uso abrangente de desenho orientado por objectos. O C++ torna a programação uma alegria se você souber como explorar as suas capacidades - a herança, o isolamento de informação e a reutilização de código já existente. </para> -<para>Ao criar um projecto do KDE ou do Qt, você terá de ter sempre uma vista que herde de QWidget, quer por herança directa, ou então porque o item da biblioteca que deseja usar herda do QWidget. Como tal, o Assistente de Aplicações já construiu uma vista que é uma instância de uma classe suaAplicacaoView, a qual já herda de QWidget. </para> +<para>Ao criar um projecto do KDE ou do Qt, você terá de ter sempre uma vista que herde de TQWidget, quer por herança directa, ou então porque o item da biblioteca que deseja usar herda do TQWidget. Como tal, o Assistente de Aplicações já construiu uma vista que é uma instância de uma classe suaAplicacaoView, a qual já herda de TQWidget. </para> <para>Este capítulo descreve, deste modo, como usar os itens das bibliotecas para criar vistas das aplicações do KDE e do QT que sejam geradas com o &tdevelop;, e iremos depois olhar para os tipos de vistas que já são oferecidas. </para> </sect1> <sect1 id="c4s2"> @@ -601,7 +601,7 @@ return a.exec(); <para>Olhando para a primeira página da documentação 'online' do Qt, você irá ver uma referência a "Widget Screenshots" (Imagens dos Elementos Gráficos), onde você poderá ver como é que o itens que o Qt contém irão ficar. Eles estão prontos a usar e podem ser combinados em conjunto para forma itens mais complexos, de modo a criar vistas de aplicações ou janelas. A seguir, iremos discutir alguns destes itens que são muito úteis para criar vistas de aplicações; tenha contudo em mente que as bibliotecas do KDE algumas vezes contêm outros itens para o mesmo fim; estes serão revistos na próxima secção. </para> <para>Aqui está um conjunto de sugestões sobre o fim para que você irá usar um determinado componente do Qt: <orderedlist> <listitem><para>Se a área da sua janela não for grande o suficiente para mostrar todos os seus dados, o utilizador irá precisar de se deslocar pelo documento através de barras à esquerda e em baixo na janela. Para isso, o Qt oferece a classe <classname>QScrollView</classname>, que oferece uma área-filha que poderá ser posicionável. Como foi dito, você poderá herdar o seu próprio item de <classname>QScrollView</classname> ou usar uma instância para gerir o item da vista do seu documento. </para></listitem> -<listitem><para>Para criar você próprio uma ScrollView, herde o item da vista da classe <classname>QWidget</classname> e adicione <classname>QScrollBars </classname> verticais e horizontais. (Isto é feito pelo item TDEHTMLView do KDE). </para></listitem> +<listitem><para>Para criar você próprio uma ScrollView, herde o item da vista da classe <classname>TQWidget</classname> e adicione <classname>QScrollBars </classname> verticais e horizontais. (Isto é feito pelo item TDEHTMLView do KDE). </para></listitem> <listitem><para>Para processar texto, use a <classname>QTextEdit</classname>. Esta classe fornece um elemento gráfico de edição de texto completo que já é capaz de cortar, copiar e colar texto e é gerido por uma vista posicionável. </para></listitem> <listitem><para>Use a <classname>QTable</classname> para mostrar dados organizados numa tabela. Dado que a <classname>QTable</classname> usa também barras de posicionamento, é uma boa solução para aplicações de cálculos de tabelas. </para></listitem> <listitem><para>Para mostrar dois itens diferentes ou duas janelas ao mesmo tempo, use o <classname>QSplitter </classname>. Isto permite pôr lado-a-lado as vistas com divisões horizontais ou verticais. O KMail é um bom exemplo do que isto iria parecer - a área principal é separada na vertical por uma divisória e a área do lado direito é, por sua vez, dividida de novo na horizontal. </para></listitem> @@ -653,7 +653,7 @@ return a.exec(); <title>Configuração de Aceleradores de Teclado</title> <para>Uma coisa muito profissional que você deverá sempre adicionar à sua aplicação são os aceleradores de teclado. Estes são principalmente usados pelos utilizadores experientes que gostam de trabalhar depressa com as suas aplicações e que estão dispostos a aprender atalhos. Para isso, as bibliotecas do KDE fornecem a classe <classname> TDEAction</classname>, que fornece as teclas de atalho do teclado e o acesso aos aceleradores-padrão de teclado, configurados a nível global. </para> <para>Por omissão, as aplicações gráficas geradas pelo &tdevelop; só usam os aceleradores de teclado normais, como o F1 para aceder à ajuda 'online', o Ctrl+N para Novo Ficheiro, etc. </para> -<para>Se a sua aplicação contiver um conjunto de aceleradores, você deverá torná-los configuráveis num menu de opções; tanto poderão estar em conjunto com outras configurações da aplicação numa QWidget como usados isoladamente. A biblioteca do KDE já fornece uma classe <classname>KKeyChooser</classname> para ser usada em páginas de uma janela, enquanto que a <classname>KKeyDialog</classname> fornece uma janela de configuração de teclas pronta a usar. </para> +<para>Se a sua aplicação contiver um conjunto de aceleradores, você deverá torná-los configuráveis num menu de opções; tanto poderão estar em conjunto com outras configurações da aplicação numa TQWidget como usados isoladamente. A biblioteca do KDE já fornece uma classe <classname>KKeyChooser</classname> para ser usada em páginas de uma janela, enquanto que a <classname>KKeyDialog</classname> fornece uma janela de configuração de teclas pronta a usar. </para> </sect1> </chapter> @@ -696,7 +696,7 @@ return a.exec(); <sect1 id="c8s4"> <title>O Botão <guibutton>O que é Isto...?</guibutton></title> <para>O botão <guibutton>O Que É Isto...?</guibutton> fornece janelas de ajuda com a intenção de que o utilizador quer obter ajuda sobre um determinado elemento na área de trabalho ou sobre um item da barra de ferramentas. É colocado na barra de ferramentas e é activado logo que o utilizador carregue no botão. O cursor muda para uma seta com um ponto de interrogação semelhante ao que o botão tem. O utilizador então poderá carregar num item visível para obter uma janela de ajuda. Como exercício, você poderá tentar este comportamento com o botão <guibutton>O que é isto...?</guibutton> no &tdevelop;. </para> -<para>Para adicionar a ajuda 'O Que É Isto...?' a um dos seus itens gráficos, use o método estático <methodname>QWhatsThis::add(QWidget *item, const QString &texto)</methodname> </para> +<para>Para adicionar a ajuda 'O Que É Isto...?' a um dos seus itens gráficos, use o método estático <methodname>QWhatsThis::add(TQWidget *item, const TQString &texto)</methodname> </para> </sect1> </chapter> diff --git a/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook b/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook index eb9be3880cc..08e14b596e7 100644 --- a/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook +++ b/tde-i18n-pt/docs/tdevelop/kdearch/index.docbook @@ -238,7 +238,7 @@ </formalpara></listitem> <listitem><formalpara><title><ulink url="kdeapi:tdeui/KPixmapIO">KPixmapIO</ulink></title> -<para>Uma conversão rápida de <classname>QImage</classname> para <classname>QPixmap</classname>. </para> +<para>Uma conversão rápida de <classname>TQImage</classname> para <classname>QPixmap</classname>. </para> </formalpara></listitem> </itemizedlist> @@ -473,7 +473,7 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title> <para>O modelo de imagens de baixo nível do Qt é baseado nas capacidades oferecidas pelo X11 e por outros sistemas de janelas para os quais o Qt foi implementado. Mas também as extende, implementando funcionalidades adicionais como as transformações arbitrárias por afinidade para texto e imagens. </para> -<para>A classe gráfica central para o desenho 2D com o Qt é a <ulink url="kdeapi:qt/QPainter">QPainter</ulink>. Ela poderá desenhar num <ulink url="kdeapi:qt/QPaintDevice">QPaintDevice</ulink>. Existem três dispositivos de pintura implementados: um é o <ulink url="kdeapi:qt/QWidget">QWidget</ulink> que representa um elemento gráfico no ecrã. A outra é o <ulink url="kdeapi:qt/QPrinter">QPrinter</ulink> que representa uma impressora e que produz o resultado em &PostScript;. A terceira é a <ulink url="kdeapi:qt/QPicture">QPicture</ulink> que guarda os comandos de desenho e que poderá gravá-los em disco e reproduzi-los depois. Uma formato possível para os comandos de desenho é a norma SVG da W3C. </para> +<para>A classe gráfica central para o desenho 2D com o Qt é a <ulink url="kdeapi:qt/QPainter">QPainter</ulink>. Ela poderá desenhar num <ulink url="kdeapi:qt/QPaintDevice">QPaintDevice</ulink>. Existem três dispositivos de pintura implementados: um é o <ulink url="kdeapi:qt/TQWidget">TQWidget</ulink> que representa um elemento gráfico no ecrã. A outra é o <ulink url="kdeapi:qt/QPrinter">QPrinter</ulink> que representa uma impressora e que produz o resultado em &PostScript;. A terceira é a <ulink url="kdeapi:qt/QPicture">QPicture</ulink> que guarda os comandos de desenho e que poderá gravá-los em disco e reproduzi-los depois. Uma formato possível para os comandos de desenho é a norma SVG da W3C. </para> <para>Como tal, é possível reaproveitar o código de desenho que você usa para mostrar num item gráfico ou para imprimir, usando as mesmas funcionalidades suportadas. Claro que, na prática, o código é usado num contexto ligeiramente diferente. Desenhar num item gráfico é quase exclusivamente feito no método <methodname>paintEvent()</methodname> da classe de um elemento gráfico. </para> @@ -664,10 +664,10 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title> <para>QBrush::QBrush(BrushStyle) - Isto cria um pincel preto com um dos padrões predefinidos que são mostrados em baixo.</para> </listitem> <listitem> -<para>QBrush::QBrush(const QColor &, BrushStyle) - Isto cria um pincel colorido com um dos seguinte padrões mostrados em baixo.</para> +<para>QBrush::QBrush(const TQColor &, BrushStyle) - Isto cria um pincel colorido com um dos seguinte padrões mostrados em baixo.</para> </listitem> <listitem> -<para>QBrush::QBrush(const QColor &, const QPixmap) - Isto cria um pincel colorido com o padrão personalizado que você passar como segundo parâmetro.</para> +<para>QBrush::QBrush(const TQColor &, const QPixmap) - Isto cria um pincel colorido com o padrão personalizado que você passar como segundo parâmetro.</para> </listitem> </itemizedlist> @@ -685,7 +685,7 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title> <simplesect id="qpainter-color"> <title>Cor</title> -<para>As cores têm um papel activo, quer a traçar as curvas, quer a preencher as formas geométricas. No Qt, as cores são representadas pela classe <ulink url="kdeapi:qt/QColor">QColor</ulink>. O Qt não suporta as funcionalidades gráficas avançadas, como os perfis de cores ICC e a correcção de cores. As cores são normalmente definidas, indicando os valores das componentes vermelha, verde e azul, dado que o modelo RGB é a forma como os pixels são compostos num monitor. </para> +<para>As cores têm um papel activo, quer a traçar as curvas, quer a preencher as formas geométricas. No Qt, as cores são representadas pela classe <ulink url="kdeapi:qt/TQColor">TQColor</ulink>. O Qt não suporta as funcionalidades gráficas avançadas, como os perfis de cores ICC e a correcção de cores. As cores são normalmente definidas, indicando os valores das componentes vermelha, verde e azul, dado que o modelo RGB é a forma como os pixels são compostos num monitor. </para> <para>É também possível usar o matiz, a saturação e o valor. Esta representação HSV é a que você usa na janela de cores do Gtk, p.ex. no GIMP. Aí, o matiz corresponde ao ângulo na roda de cores, enquanto a saturação corresponde à distância ao centro do círculo. O valor pode ser escolhido com uma barra em separado. </para> @@ -738,7 +738,7 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title> <para>A <ulink url="kdeapi:qt/QPixmap">QPixmap</ulink> corresponde directamente aos objectos das imagens no X11. As imagens são objectos do lado do servidor e podem - numa placa gráfica moderna - até mesmo ser gravadas directamente na memória da placa. Isto torna <emphasis>bastante</emphasis> eficiente a transferência de imagens para o ecrã. As imagens também funcionam como um equivalente, fora do ecrã , dos elementos gráficos - a classe QPixmap é uma subclasse da QPaintDevice, por isso você poderá desenhar nela com um QPainter. As operações elementares de desenho são normalmente aceleradas pelos dispositivos gráficos modernos. Daí, um padrão de uso normal é usar as imagens para fazer duplo-'buffering'. Isto significa que, em vez de desenhar directamente num elemento gráfico, você desenha num objecto temporário de imagem e usa a função <ulink url="kdeapi:qt/QPaintDevice#bitBlt-1">bitBlt</ulink> para transferir a imagem para o elemento gráfico. Para os desenhos complexos, isto ajuda a evitar intermitências. </para> -<para>Em contraste, os objectos <ulink url="kdeapi:qt/QImage">QImage</ulink> residem do lado do cliente. A sua ênfase é na fornecer um acesso directo aos pixels da imagem. Isso torna-os úteis para manipular imagens e para coisas como a leitura e gravação em disco (o método load() da QPixmap recebe uma QImage como passo intermédio). Por outro lado, desenhar uma imagem num elemento gráfico é uma operação relativamente dispendiosa, dado que implica uma transferência para o servidor X, o que ainda poderá levar algum tempo, especialmente para imagens grandes e para servidores remotos. Dependendo da profundidade de cor, a conversão de uma QImage para uma QPixmap pode necessitar de ajuste de cores. </para> +<para>Em contraste, os objectos <ulink url="kdeapi:qt/TQImage">TQImage</ulink> residem do lado do cliente. A sua ênfase é na fornecer um acesso directo aos pixels da imagem. Isso torna-os úteis para manipular imagens e para coisas como a leitura e gravação em disco (o método load() da QPixmap recebe uma TQImage como passo intermédio). Por outro lado, desenhar uma imagem num elemento gráfico é uma operação relativamente dispendiosa, dado que implica uma transferência para o servidor X, o que ainda poderá levar algum tempo, especialmente para imagens grandes e para servidores remotos. Dependendo da profundidade de cor, a conversão de uma TQImage para uma QPixmap pode necessitar de ajuste de cores. </para> </simplesect> @@ -746,7 +746,7 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title> <simplesect id="qpainter-drawingtext"> <title>Desenhar texto</title> -<para>O texto poderá ser desenhado com uma das variantes do método QPainter::drawText(). Estas desenham uma QString quer num dado ponto, quer num dado rectângulo, usando o tipo de letra definido pelo QPainter::setFont(). Existe também um parâmetro que recebe uma combinação do tipo OU de algumas opções dos tipos enumerados <ulink url="kdeapi:qt/Qt#AlignmentFlags-enum">Qt::AlignmentFlags</ulink> e <ulink url="kdeapi:qt/Qt#TextFlags-enum">Qt::TextFlags</ulink> </para> +<para>O texto poderá ser desenhado com uma das variantes do método QPainter::drawText(). Estas desenham uma TQString quer num dado ponto, quer num dado rectângulo, usando o tipo de letra definido pelo QPainter::setFont(). Existe também um parâmetro que recebe uma combinação do tipo OU de algumas opções dos tipos enumerados <ulink url="kdeapi:qt/Qt#AlignmentFlags-enum">Qt::AlignmentFlags</ulink> e <ulink url="kdeapi:qt/Qt#TextFlags-enum">Qt::TextFlags</ulink> </para> <para>A partir da versão 3.0, o Qt toma conta da disposição completa do texto, mesmo para as línguas escritas da direita para a esquerda. </para> @@ -1002,7 +1002,7 @@ rc_DATA = kviewui.rc <programlisting>void JanelaPrincipal::menuPedido() { - QWidget *m = factory()->container("menu_contexto", this); + TQWidget *m = factory()->container("menu_contexto", this); QPopupMenu *menu = static_cast<QPopupMenu *>(m); menu->exec(QCursor::pos()); } @@ -1139,13 +1139,13 @@ X-TDE-ServiceType=KDevelop/Part Name=KDevelop Part [PropertyDef::X-KDevelop-Scope] -Type=QString +Type=TQString [PropertyDef::X-KDevelop-ProgrammingLanguages] Type=QStringList [PropertyDef::X-KDevelop-Args] -Type=QString +Type=TQString </programlisting> <para>Para além dos itens normais, este exemplo demonstra como é que você declara que um serviço tem determinadas propriedades. Cada definição de propriedades corresponde a um grupo <literal>[PropertyDef::name]</literal> no ficheiro de configuração. Neste grupo, o item <literal>Type</literal> define o tipo da propriedades. Os tipos possíveis são todos os que conseguem ser registados num <ulink url="kdeapi:qt/QVariant">QVariant</ulink>. </para> @@ -1197,11 +1197,11 @@ X-KDevelop-Scope=Project <para>Com o objecto <classname>KService</classname> acessível, você poderá simplesmente carregar a biblioteca e obter uma referência para o objecto da sua 'factory': </para> <programlisting>KService *servico = ... -QString nomeBiblioteca = QFile::encodeName(servico->library()); +TQString nomeBiblioteca = QFile::encodeName(servico->library()); KLibFactory *fabrica = KLibLoader::self()->factory(nomeBiblioteca); if (!fabrica) { - QString nome = servico->name(); - QString mensagemErro = KLibLoader::self()->lastErrorMessage(); + TQString nome = servico->name(); + TQString mensagemErro = KLibLoader::self()->lastErrorMessage(); KMessageBox::error(0, i18n("Ocorreu um erro ao carregar o serviço %1.\n" "O diagnóstico da libtool é:\n%2") .arg(nome).arg(mensagemErro); @@ -1212,7 +1212,7 @@ if (!fabrica) { <programlisting>if (fabrica->inherits("KParts::Factory")) { KParts::Factory *fabricaComponentes = static_cast<KParts::Factory*>(fabrica); - QObject *objecto = fabricaComponentes->createPart(janelaMae, nomeJanela, + TQObject *objecto = fabricaComponentes->createPart(janelaMae, nomeJanela, mae, nome, "KParts::ReadOnlyPart"); ... } else { @@ -1257,7 +1257,7 @@ X-TDE-StartupNotify=false <programlisting>DCOPClient *cliente = kapp->dcopClient(); cliente->attach(); if (!cliente->isApplicationRegistered("tdeio_uiserver")) { - QString erro; + TQString erro; if (TDEApplication::startServiceByName("tdeio_uiserver", QStringList(), &erro)) cout << "O início do kioserver falhou com a mensagem " << erro << endl; } @@ -1276,7 +1276,7 @@ if (!client->call("tdeio_uiserver", "UIServer", "setListMode(bool)", <para>No exemplo aqui dado, o serviço foi iniciado "por nome", i.e., o primeiro argumento do <function>TDEApplication::startServiceByName()</function> é o nome que aparece na linha <literal>Name</literal> do ficheiro 'desktop'. Uma alternativa é usar o <function>TDEApplication::startServiceByDesktopName()</function>, que recebe o nome do ficheiro 'desktop' como argumento, i.e., neste caso, seria igual a <literal>"tdeio_uiserver.desktop"</literal>. </para> -<para>Todas estas chamadas recebem uma lista de URLs como segundo argumento, o qual é dado ao serviço na linha de comandos. O terceiro argumento é um ponteiro para uma <classname>QString</classname>. Se o início do serviço falhar, este argumento fica igual à mensagem de erro traduzida. </para> +<para>Todas estas chamadas recebem uma lista de URLs como segundo argumento, o qual é dado ao serviço na linha de comandos. O terceiro argumento é um ponteiro para uma <classname>TQString</classname>. Se o início do serviço falhar, este argumento fica igual à mensagem de erro traduzida. </para> </simplesect> @@ -1386,7 +1386,7 @@ else <para>Obviamente, até mesmo o KMimeMagic só é capaz de determinar o tipo do ficheiro para o conteúdo de um ficheiro local. Para os ficheiros remotos, existe uma outra possibilidade: </para> <programlisting>KURL url("http://developer.kde.org/favicon.ico"); -QString tipo = TDEIO::NetAccess::mimetype(url); +TQString tipo = TDEIO::NetAccess::mimetype(url); if (tipo == KMimeType::defaultMimeType()) cout << "Não foi possível descobrir o tipo" << endl; else @@ -1464,7 +1464,7 @@ KRun::run(ofertas.service(), listaUrls); <para>Obter um ícone para um dado URL. Isto procura o tipo do URL e devolve o ícone associado. </para> <programlisting>KURL url("ftp://ftp.kde.org/pub/incoming/wibble.c"); -QString icone = KMimeType::iconForURL(url); +TQString icone = KMimeType::iconForURL(url); </programlisting> <para>Executar um URL. Isto procura pelo tipo do URL e inicia o programa preferido do utilizador associado a este tipo. </para> @@ -1543,7 +1543,7 @@ void ClasseXpto::resultadoMkdir(TDEIO::Job *tarefa) <listitem><para>Muda o nome de um ficheiro. </para></listitem> </varlistentry> -<varlistentry><term>TDEIO::symlink(const QString &alvo, const KURL &destino, bool sobrepor, bool mostrarProgresso)</term> +<varlistentry><term>TDEIO::symlink(const TQString &alvo, const KURL &destino, bool sobrepor, bool mostrarProgresso)</term> <listitem><para>Cria uma ligação simbólica. </para></listitem> </varlistentry> @@ -1663,7 +1663,7 @@ TDEIO::NetAccess::copy(origem, destino); <programlisting>KURL url; url = ...; -QString ficheiroTemporario; +TQString ficheiroTemporario; if (TDEIO::NetAccess::download(url, ficheiroTemporario) { // carregar o ficheiro com o nome 'ficheiroTemporario' TDEIO::NetAccess::removeTempFile(ficheiroTemporario); @@ -1699,12 +1699,12 @@ if (TDEIO::NetAccess::download(url, ficheiroTemporario) { void ClasseXpto::transferirResultado(TDEIO::Job *tarefa) { - QString tipoMime; + TQString tipoMime; if (tarefa->error()) tarefa->showErrorDialog(); else { TDEIO::TransferJob *tarefaTransferencia = (TDEIO::TransferJob*) tarefa; - QString modificado = tarefaTransferencia->queryMetaData("modified"); + TQString modificado = tarefaTransferencia->queryMetaData("modified"); cout << "Última modificação: " << modificado << endl; } </programlisting> @@ -1849,7 +1849,7 @@ int kdemain(int argc, char **argv) <listitem><para>copy(const KURL &url, const KURL &destino, int permissoes, bool sobrepor)</para></listitem></varlistentry> <varlistentry><term>Cria uma ligação simbólica.</term> -<listitem><para>void symlink(const QString &alvo, const KURL &destino, bool sobrepor)</para></listitem></varlistentry> +<listitem><para>void symlink(const TQString &alvo, const KURL &destino, bool sobrepor)</para></listitem></varlistentry> </variablelist> |