summaryrefslogtreecommitdiffstats
path: root/tde-i18n-ru/docs/tdevelop
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2023-10-13 18:02:18 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2023-11-16 21:32:11 +0900
commit83e7d90131a60206a219edf4a2ba9e570c689268 (patch)
tree46580d5604e909a3b3699b4e27201bcd66f3c18f /tde-i18n-ru/docs/tdevelop
parentd3f6a5fb3fca54c14196ef9d16eed9a37e9516e9 (diff)
downloadtde-i18n-83e7d90131a60206a219edf4a2ba9e570c689268.tar.gz
tde-i18n-83e7d90131a60206a219edf4a2ba9e570c689268.zip
Replace QObject, QWidget, QImage, QPair, QRgb, QColor, QChar, QString, QIODevice with TQ* version
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it> (cherry picked from commit 241e0082f7b9ccadaeed0ef43a1c9ebb9b4fe840)
Diffstat (limited to 'tde-i18n-ru/docs/tdevelop')
-rw-r--r--tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook42
-rw-r--r--tde-i18n-ru/docs/tdevelop/kdearch/index.docbook44
2 files changed, 43 insertions, 43 deletions
diff --git a/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook b/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook
index 29987b7b73c..9a4f4528483 100644
--- a/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook
+++ b/tde-i18n-ru/docs/tdevelop/kde_app_devel/index.docbook
@@ -160,15 +160,15 @@ return a.exec();
</orderedlist>
</para>
<para>Второй объект нашей программы - кнопка, экземпляр класса <classname>QPushButton</classname>. Из двух доступных конструкторов экземпляров этого класса мы воспользовались вторым: он принимает в виде аргумента строку текста, которая будет показана на кнопке. Затем методом <methodname>resize()</methodname> мы изменяем размер кнопки, чтобы вся строка была видна на кнопке. </para>
-<para>Далее идёт метод <methodname>show()</methodname>. Но его нет в описании класса <classname>QPushButton</classname>. Этот класс наследует методы класса <classname>QButton</classname>, а тот, в свою очередь, наследует методы <classname>QWidget</classname>. Этот класс содержит огромное количество методов, в том числе <methodname>show()</methodname>. Итак, что же делалось с кнопкой: <orderedlist>
+<para>Далее идёт метод <methodname>show()</methodname>. Но его нет в описании класса <classname>QPushButton</classname>. Этот класс наследует методы класса <classname>QButton</classname>, а тот, в свою очередь, наследует методы <classname>TQWidget</classname>. Этот класс содержит огромное количество методов, в том числе <methodname>show()</methodname>. Итак, что же делалось с кнопкой: <orderedlist>
<listitem><para>Создаём экземпляр класса <classname>QPushButton</classname>, используя второй конструктор для указания надписи на кнопке</para></listitem>
<listitem><para>Изменяем размер кнопки</para></listitem>
<listitem><para>Делаем основным элементом управления для переменной а, экземпляра класса <classname>QApplication</classname></para></listitem>
-<listitem><para>Вызываем метод <methodname>show()</methodname>, который приводит к отображению элемента управления. Он наследуется от класса <classname>QWidget</classname></para></listitem>
+<listitem><para>Вызываем метод <methodname>show()</methodname>, который приводит к отображению элемента управления. Он наследуется от класса <classname>TQWidget</classname></para></listitem>
</orderedlist>
</para>
<para>После вызова метода <methodname>exec()</methodname>, приложение становится видимым пользователю. Окно приложения содержит кнопку "Hello world!". Примечание: GUI-программы ведут себя несколько отлично от процедурных. Главное отличие состоит в том, что приложение входит в т.н. "главный цикл событий" ("main event loop"). Это означает, что программа ожидает действий со стороны пользователя, и выдаёт на них определённую реакцию. Следующий раздел разъясняет, что это означает для программиста, и как эти события обрабатываются в Qt. </para>
-<note><para>Для опытных: кнопка не имеет родителя, это значит, что это элемент управления верхнего уровня (top-level) и выполняется в локальном цикле событий, которому не нужно ждать главного цикла событий. Подробно это объяснено в документации класса QWidget и The KDE Library Reference Guide</para>
+<note><para>Для опытных: кнопка не имеет родителя, это значит, что это элемент управления верхнего уровня (top-level) и выполняется в локальном цикле событий, которому не нужно ждать главного цикла событий. Подробно это объяснено в документации класса TQWidget и The KDE Library Reference Guide</para>
</note>
</sect3>
@@ -183,7 +183,7 @@ return a.exec();
</itemizedlist>
</para>
<para>Теперь оживим нашу программу добавлением обработчика событий. В общем, есть два способа взаимодействия пользователя с программой - клавиатурой и мышью. В обоих случаях графический интерфейс предоставляет механизмы регистрации новых событий от этих устройств и методы их обработки. </para>
-<para>Оконная система посылает все события соответствующему приложению. <classname>QApplication</classname> пересылает их активному окну в виде <classname>QEvent</classname> и элементы управления затем решают, что при этом делать. Соответствующий элемент управления принимает событие и обрабатывает <methodname>QWidget::event (QEvent*)</methodname>, в котором определяется тип события и выдаётся соответствующая реакция; <methodname>event()</methodname> - главный обработчик событий. Он передаёт событие т.н. фильтрам событий, которые определяют, что произошло и что делать с этим событием. Если фильтра для данного типа события нет, вызываются специальные обработчики событий. Они вызывают соответствующие предопределённые методы: <itemizedlist>
+<para>Оконная система посылает все события соответствующему приложению. <classname>QApplication</classname> пересылает их активному окну в виде <classname>QEvent</classname> и элементы управления затем решают, что при этом делать. Соответствующий элемент управления принимает событие и обрабатывает <methodname>TQWidget::event (QEvent*)</methodname>, в котором определяется тип события и выдаётся соответствующая реакция; <methodname>event()</methodname> - главный обработчик событий. Он передаёт событие т.н. фильтрам событий, которые определяют, что произошло и что делать с этим событием. Если фильтра для данного типа события нет, вызываются специальные обработчики событий. Они вызывают соответствующие предопределённые методы: <itemizedlist>
<listitem><para>События с клавиатуры - нажатие клавиш TAB и Shift-TAB:</para>
<itemizedlist>
<listitem><para><methodname>virtual void focusInEvent(QFocusEvent *)</methodname></para></listitem>
@@ -224,12 +224,12 @@ return a.exec();
</itemizedlist>
</para>
-<para>Помните, что все функции событий являются виртуальными и защищёнными. Вы можете переназначить события, нужные вам, и определить свою реакцию. <classname>QWidget</classname> также содержит некоторые виртуальные методы, которые могут пригодиться в ваших программах. В любом случае, класс <classname>QWidget</classname> нужно узнать получше. </para>
+<para>Помните, что все функции событий являются виртуальными и защищёнными. Вы можете переназначить события, нужные вам, и определить свою реакцию. <classname>TQWidget</classname> также содержит некоторые виртуальные методы, которые могут пригодиться в ваших программах. В любом случае, класс <classname>TQWidget</classname> нужно узнать получше. </para>
</sect2>
<sect2 id="c1s2s4">
<title>Взаимодействие объектов через сигналы и слоты</title>
<para>Теперь переходим к основному отличию Qt: механизму сигнал/слот. Это быстрое и удобное решение реализации взаимодействия объектов, которое обычно решается посредством callback-функций в библиотеках, работающих с X-Window. Так как такое взаимодействие требует аккуратного программирования и иногда делает создание пользовательского интерфейса очень сложным (что описано в документации по Qt и объяснено в книге К.Дальхеймера [K.Dalheimer] 'Programming with Qt'), Troll Tech придумала новую систему, где объекты могут посылать сигналы, которые можно связывать с методами, объявленными как слоты. Программисту на C++ нужно знать только некоторые вещи о механизме: <itemizedlist>
-<listitem><para>объявление класса, использующего сигналы/слот должно содержать макрос TQ_OBJECT в начале (без точки с запятой); и должно быть унаследовано от класса <classname>QObject</classname> </para></listitem>
+<listitem><para>объявление класса, использующего сигналы/слот должно содержать макрос TQ_OBJECT в начале (без точки с запятой); и должно быть унаследовано от класса <classname>TQObject</classname> </para></listitem>
<listitem><para>сигнал может быть послан ключевым словом emit (например, emit signal (параметры...)) из любого метода класса, поддерживающего сигналы/слоты </para></listitem>
<listitem><para>все сигналы, использующиеся не наследуемыми классами, должны быть добавлены в объявление класса в разделе signals </para></listitem>
@@ -237,9 +237,9 @@ return a.exec();
<listitem><para>компилятор метаобъектов (moc, meta-object compiler) обрабатывает заголовочные файлы, заменяя макросы на действительный код (это не обязательно знать). Вывод moc передаётся компилятору C++. </para></listitem>
</itemizedlist>
</para>
-<para>Другой способ использования сигналов без наследования от класса <classname>QObject</classname> - использовать класс <classname>QSignal</classname>: дополнительные сведения и примеры использования вы можете найти в документации. Далее подразумевается, что вы используете наследование от класса <classname>QObject</classname>. </para>
+<para>Другой способ использования сигналов без наследования от класса <classname>TQObject</classname> - использовать класс <classname>QSignal</classname>: дополнительные сведения и примеры использования вы можете найти в документации. Далее подразумевается, что вы используете наследование от класса <classname>TQObject</classname>. </para>
<para>В этом случае ваш класс может посылать сигналы куда угодно и создавать слоты, к которым можно привязывать любые сигналы. Используя сигналы, вам не нужно заботиться о том, кто их получает - нужно просто послать сигнал, а потом подключить любой слот, который будет выполнен при возникновении сигнала. Слоты можно использовать также как обычные методы в реализации. </para>
-<para>Теперь, чтобы соединить сигнал со слотом,воспользуйтесь методом <methodname>connect()</methodname> класса <classname>QObject</classname> или, если доступно, другими специальными методами объекта для создания привязки к соответствующему сигналу. </para>
+<para>Теперь, чтобы соединить сигнал со слотом,воспользуйтесь методом <methodname>connect()</methodname> класса <classname>TQObject</classname> или, если доступно, другими специальными методами объекта для создания привязки к соответствующему сигналу. </para>
<sect3 id="c1s2s4s1">
<title>Примерное использование</title>
@@ -255,16 +255,16 @@ hello.resize( 100, 30 );
a.setMainWidget( &amp;hello );
-QObject::connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ));
+TQObject::connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ));
hello.show();
return a.exec();
}
</programlisting>
</para>
-<para>Как видите, мы лишь расширили возможности кнопки с использованием метода <methodname>connect()</methodname>: <methodname>connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ))</methodname> &mdash; всё, что мы добавили. Что же это означает? Объявление метода <methodname>connect()</methodname> в классе QObject: </para>
-<para><methodname>bool connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * member ) </methodname></para>
-<para>Это значит, что указатель на экземпляр <classname>QObject</classname> является инициатором сигнала, указанного во втором аргументе. Оставшиеся два аргумента есть объект-приёмник, который имеет слот, а затем и имя функции-слота, которая будет выполнена при получении сигнала. </para>
+<para>Как видите, мы лишь расширили возможности кнопки с использованием метода <methodname>connect()</methodname>: <methodname>connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ))</methodname> &mdash; всё, что мы добавили. Что же это означает? Объявление метода <methodname>connect()</methodname> в классе TQObject: </para>
+<para><methodname>bool connect ( const TQObject * sender, const char * signal, const TQObject * receiver, const char * member ) </methodname></para>
+<para>Это значит, что указатель на экземпляр <classname>TQObject</classname> является инициатором сигнала, указанного во втором аргументе. Оставшиеся два аргумента есть объект-приёмник, который имеет слот, а затем и имя функции-слота, которая будет выполнена при получении сигнала. </para>
<para>С помощью сигналов и слотов, объекты ваших программ могут взаимодействовать друг с другом без явной зависимости от типа объекта-приёмника. Далее в этом руководстве приводится более подробное описание работы механзима сигналов/слотов. Коме этого, о нём можно почитать в <ulink url="developer.kde.org/documentation/library/libraryref.html">The KDE Library Reference Guide</ulink> и <ulink url="doc.trolltech.com">Qt online reference</ulink>. </para>
</sect3>
</sect2>
@@ -304,7 +304,7 @@ hello.resize( 100, 30 );
a.setTopWidget( &amp;hello );
-QObject::connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ));
+TQObject::connect(&amp;hello, SIGNAL( clicked() ), &amp;a, SLOT( quit() ));
hello.show();
return a.exec();
@@ -313,7 +313,7 @@ return a.exec();
</para>
<para>Вы видите, что мы поменяли класс <classname>QApplication</classname> на <classname>TDEApplication</classname>. Затем мы использовали метод <methodname>setTopWidget</methodname> вместо <methodname>setMainWidget()</methodname> для указания главного элемента управления для <classname>TDEApplication</classname>. Всё! Ваше первое приложение KDE готово - осталось только указать путь к заголовочным файлам KDE и скомпоновать библиотеку tdecore ключом компоновщика -ltdecore. </para>
<para>Если вы не собираетесь создавать такие простые программы, вам понадобится более удобная среда написания ПО. В следующей главе речь пойдёт о &tdevelop;. </para>
-<para>Итак, к этому времени, вы уже прошлись по страницам справочной документации Qt, в т.ч. по классам <classname>QApplication</classname>, <classname>QWidget</classname> и <classname>QObject</classname>, а также по документации библиотеки tdecore, классу <classname>TDEApplication</classname>. <ulink url="developer.kde.org/documentation/library/libraryref.html">KDE Library Reference handbook</ulink> содержит полное описание использования конструкторов <classname>QApplication</classname> и <classname>TDEApplication</classname>, включая также обработку ключей командной строки. </para>
+<para>Итак, к этому времени, вы уже прошлись по страницам справочной документации Qt, в т.ч. по классам <classname>QApplication</classname>, <classname>TQWidget</classname> и <classname>TQObject</classname>, а также по документации библиотеки tdecore, классу <classname>TDEApplication</classname>. <ulink url="developer.kde.org/documentation/library/libraryref.html">KDE Library Reference handbook</ulink> содержит полное описание использования конструкторов <classname>QApplication</classname> и <classname>TDEApplication</classname>, включая также обработку ключей командной строки. </para>
</sect2>
</sect1>
@@ -549,10 +549,10 @@ return a.exec();
16 statusBar()->show();
17
18 // allow the view to change the statusbar and caption
-19 connect(m_view, SIGNAL(signalChangeStatusbar(const QString&amp;)),
-20 this, SLOT(changeStatusbar(const QString&amp;)));
-21 connect(m_view, SIGNAL(signalChangeCaption(const QString&amp;)),
-22 this, SLOT(changeCaption(const QString&amp;)));
+19 connect(m_view, SIGNAL(signalChangeStatusbar(const TQString&amp;)),
+20 this, SLOT(changeStatusbar(const TQString&amp;)));
+21 connect(m_view, SIGNAL(signalChangeCaption(const TQString&amp;)),
+22 this, SLOT(changeCaption(const TQString&amp;)));
23
24 }
</programlisting>
@@ -584,7 +584,7 @@ return a.exec();
</itemizedlist>
</para>
<para>Излишним будет говорить, что стабильность - самая главная цель. Никто не может 100% избежать ошибок ("bugs"), но разумное проектирование позволяет значительно уменьшить количество возможных недоработок. Программирование на C++, если вы знаете как использовать его лучшие стороны - наследовательность, скрытие информации (модульность) и повторное использование одного кода, безусловно принесёт вам успех. </para>
-<para>При создании проекта KDE или Qt, его представление (view) всегда наследует QWidget, либо напрямую, либо через другие элементы управления библиотек. Мастер приложений также создёт код, содержащий класс yourappView, наследователь QWidget. </para>
+<para>При создании проекта KDE или Qt, его представление (view) всегда наследует TQWidget, либо напрямую, либо через другие элементы управления библиотек. Мастер приложений также создёт код, содержащий класс yourappView, наследователь TQWidget. </para>
<para>В этой главе мы опишем как использовать элементы управления библиотек для создания новыхпредставлений, потом будет обзор готовых представлений, которые они уже содержат. </para>
</sect1>
<sect1 id="c4s2">
@@ -601,7 +601,7 @@ return a.exec();
<para>На первой странице документации Qt вы можете найти ссылку на "Widget Screenshots", чтобы выбрать нужный. Они уже готовы к использованию, и их можно совмещать. Далее, мы обсудим некоторые из них, но помните, что библиотеки KDE могут содержать свои (доработанные) элементы управления, предназначенные для тех же задач. </para>
<para>Вот несколько компонентов Qt и их назначения: <orderedlist>
<listitem><para>Если в области вашего представления не хватает свободного места, пользователь должен перемещаться по документу с помощью полос прокрутки. Для этого, в Qt есть класс <classname>QScrollView</classname>. Вы можете сделать свой элемент управления наследником <classname>QScrollView</classname> или использовать его экземпляр для управления представлением. </para></listitem>
-<listitem><para>Для создания ScrollView, унаследуйте виджет-представление от <classname>QWidget</classname> и и добавьте вертикальные и горизонтальные полосы прокрутки <classname>QScrollBars </classname> (так делается в TDEHTMLView). </para></listitem>
+<listitem><para>Для создания ScrollView, унаследуйте виджет-представление от <classname>TQWidget</classname> и и добавьте вертикальные и горизонтальные полосы прокрутки <classname>QScrollBars </classname> (так делается в TDEHTMLView). </para></listitem>
<listitem><para>Для обработки текста, пвоспользуйтесь <classname>QTextEdit</classname>. Этот класс предоставляет законченный виджет текстового редактора, который уже поддерживает операции с буфером обмена, а также управляется полосами прокрутки scrollview. </para></listitem>
<listitem><para>Воспользуйтесь <classname>QTable</classname> для отображения данных, организованных в таблицу. <classname>QTable</classname> также управляется полосами прокрутки. </para></listitem>
<listitem><para>Для отображения двух различных виджетов или двух экземпляров одного виджета одновременно, воспользуйтесь <classname>QSplitter </classname>. Он позволяет разделить представления горизонтально или вертикально. Его использует KMail и KBabel. </para></listitem>
@@ -696,7 +696,7 @@ return a.exec();
<sect1 id="c8s4">
<title>Кнопка <guibutton>Что это?</guibutton></title>
<para>Подсказка <guibutton>Что это?</guibutton> должна содержать кратку справку (абзац-два) по выбраному элементу. Сама кнопка <guibutton>Что это?</guibutton> обычно располагается либо в меню, либо на панели инструментов, либо в загаловке окна. После нажатия на ней, пользователь должен нажать на нужной объекте. </para>
-<para>Для добавления такой справки, воспользуйтесь статическим методом <methodname>QWhatsThis::add(QWidget *widget, const QString &amp;text)</methodname> </para>
+<para>Для добавления такой справки, воспользуйтесь статическим методом <methodname>QWhatsThis::add(TQWidget *widget, const TQString &amp;text)</methodname> </para>
</sect1>
</chapter>
diff --git a/tde-i18n-ru/docs/tdevelop/kdearch/index.docbook b/tde-i18n-ru/docs/tdevelop/kdearch/index.docbook
index 36397c33db3..5ff95b63e29 100644
--- a/tde-i18n-ru/docs/tdevelop/kdearch/index.docbook
+++ b/tde-i18n-ru/docs/tdevelop/kdearch/index.docbook
@@ -238,7 +238,7 @@
</formalpara></listitem>
<listitem><formalpara><title><ulink url="kdeapi:tdeui/KPixmapIO">KPixmapIO</ulink></title>
-<para>Быстрое преобразование <classname>QImage</classname> в <classname>QPixmap</classname>. </para>
+<para>Быстрое преобразование <classname>TQImage</classname> в <classname>QPixmap</classname>. </para>
</formalpara></listitem>
</itemizedlist>
@@ -473,7 +473,7 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title>
<para>Низкоуровневая графическая модель Qt основывается на возможностях, предоставляемых X11 или другими графическими моделями, в которые портирована Qt. Но в ней также есть расширенные функции, такие как произвольные преобразования для текста и растра. </para>
-<para>Центральный графический класс для двухмерного рисования с Qt называется <ulink url="kdeapi:qt/QPainter">QPainter</ulink>. Он может рисовать на <ulink url="kdeapi:qt/QPaintDevice">QPaintDevice</ulink>. Реализовано 3 устройства для рисования: <ulink url="kdeapi:qt/QWidget">QWidget</ulink>, представляющий элемент управления на экране, <ulink url="kdeapi:qt/QPrinter">QPrinter</ulink>, представляющий виджет в виде вывода Postscript, и <ulink url="kdeapi:qt/QPicture">QPicture</ulink>, позволяющий записывать и воспроизводить команды рисования (с диска) в формате SVG. </para>
+<para>Центральный графический класс для двухмерного рисования с Qt называется <ulink url="kdeapi:qt/QPainter">QPainter</ulink>. Он может рисовать на <ulink url="kdeapi:qt/QPaintDevice">QPaintDevice</ulink>. Реализовано 3 устройства для рисования: <ulink url="kdeapi:qt/TQWidget">TQWidget</ulink>, представляющий элемент управления на экране, <ulink url="kdeapi:qt/QPrinter">QPrinter</ulink>, представляющий виджет в виде вывода Postscript, и <ulink url="kdeapi:qt/QPicture">QPicture</ulink>, позволяющий записывать и воспроизводить команды рисования (с диска) в формате SVG. </para>
<para>Такое рисование используется преимущественно в методе paintEvent() класса элемента управления. </para>
@@ -664,10 +664,10 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title>
<para>QBrush::QBrush(BrushStyle) - чёрная кисть.</para>
</listitem>
<listitem>
-<para>QBrush::QBrush(const QColor &amp;, BrushStyle) - Цветная кисть.</para>
+<para>QBrush::QBrush(const TQColor &amp;, BrushStyle) - Цветная кисть.</para>
</listitem>
<listitem>
-<para>QBrush::QBrush(const QColor &amp;, const QPixmap) - Цветная кисть с заданным узором.</para>
+<para>QBrush::QBrush(const TQColor &amp;, const QPixmap) - Цветная кисть с заданным узором.</para>
</listitem>
</itemizedlist>
@@ -685,7 +685,7 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title>
<simplesect id="qpainter-color">
<title>Цвет</title>
-<para>В Qt цвета представлены классом <ulink url="kdeapi:qt/QColor">QColor</ulink>. Qt не поддерживает расширенную функциональность типа цветовых профилей ICC и сглаживание цветов. Цвета указываются по RGB. </para>
+<para>В Qt цвета представлены классом <ulink url="kdeapi:qt/TQColor">TQColor</ulink>. Qt не поддерживает расширенную функциональность типа цветовых профилей ICC и сглаживание цветов. Цвета указываются по RGB. </para>
<para>Также возможно использовать оттенки, насыщенность и величина (HSV). Эти параметры напрямую используются в диалоге выбора цвета GIMP. Оттенок отвечает уголку на полосе цвета, насыщенность отвечает расстоянию до центра окружности. Величину можно выбрать отдельным ползунком. </para>
@@ -738,7 +738,7 @@ url="kdeapi:tdeui/KAnimWidget">KAnimWidget</ulink></title>
<para><ulink url="kdeapi:qt/QPixmap">QPixmap</ulink> отвечает растровым объектам X11. Растры - это объекты стороны сервера и могут - на новых графических картах - даже храниться в их памяти. Поэтому работа с ними происходит <emphasis>очень</emphasis> быстро. Растры также выступают эквивалентами элементов управления - класс QPixmap является подклассом QPaintDevice, так что вы можете рисовать на нём с QPainter. Элементарные операции рисования обычно оптимизируются современными графическими картами. Поэтому, можно использовать растры для двойной буферизации ("double buffering"). Это означает рисовать не прямо на элементе управления, а на временном растре, а потом вызывать функцию <ulink url="kdeapi:qt/QPaintDevice#bitBlt-1">bitBlt</ulink> чтобы передать его виджету. Для сложных перерисовок, это помогает предотвратить мигание. </para>
-<para>Объекты <ulink url="kdeapi:qt/QImage">QImage</ulink> располагаются на стороне клиента. Основное ударение поставлено на прямой доступ к точкам изображения. Это упрощает операции манипуляции с изображениями, загрузку и сохранение на диск (метод QPixmapload() берёт QImage как промежуточный). С другой стороны, рисование на элементе управления - дорогая операция, т.к. включает в себя передачу X-серверу. В зависимости от глубины цвета, преобразование из QImage в QPixmap может требовать dithering. </para>
+<para>Объекты <ulink url="kdeapi:qt/TQImage">TQImage</ulink> располагаются на стороне клиента. Основное ударение поставлено на прямой доступ к точкам изображения. Это упрощает операции манипуляции с изображениями, загрузку и сохранение на диск (метод QPixmapload() берёт TQImage как промежуточный). С другой стороны, рисование на элементе управления - дорогая операция, т.к. включает в себя передачу X-серверу. В зависимости от глубины цвета, преобразование из TQImage в QPixmap может требовать dithering. </para>
</simplesect>
@@ -1002,7 +1002,7 @@ rc_DATA = kviewui.rc
<programlisting>void MainWindow::popupRequested()
{
- QWidget *w = factory()->container("context_popup", this);
+ TQWidget *w = factory()->container("context_popup", this);
QPopupMenu *popup = static_cast&lt;QPopupMenu *&gt;(w);
popup->exec(QCursor::pos());
}
@@ -1138,13 +1138,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>Кроме обычных записей, здесь есть объявление наличия свойств. Каждое определение свойства отвечает группе <literal>[PropertyDef::name]</literal> в файле настроек. В этой группе, <literal>Type</literal> объявляет тип свойства. Возможные типы - всё, что может храниться в <ulink url="kdeapi:qt/QVariant">QVariant</ulink>. </para>
@@ -1196,11 +1196,11 @@ X-KDevelop-Scope=Project
<para>Получив объект <classname>KService</classname>, остаётся загрузить библиотеку и получить указатель на объект factory: </para>
<programlisting>KService *service = ...
-QString libName = QFile::encodeName(service->library());
+TQString libName = QFile::encodeName(service->library());
KLibFactory *factory = KLibLoader::self()->factory(libName);
if (!factory) {
- QString name = service->name();
- QString errorMessage = KLibLoader::self()->lastErrorMessage();
+ TQString name = service->name();
+ TQString errorMessage = KLibLoader::self()->lastErrorMessage();
KMessageBox::error(0, i18n("There was an error loading service %1.\n"
"The diagnostics from libtool is:\n%2")
.arg(name).arg(errorMessage);
@@ -1211,7 +1211,7 @@ if (!factory) {
<programlisting>if (factory->inherits("KParts::Factory")) {
KParts::Factory *partFactory = static_cast&lt;KParts::Factory*&gt;(factory);
- QObject *obj = partFactory->createPart(parentWidget, widgetName,
+ TQObject *obj = partFactory->createPart(parentWidget, widgetName,
parent, name, "KParts::ReadOnlyPart");
...
} else {
@@ -1256,7 +1256,7 @@ X-TDE-StartupNotify=false
<programlisting>DCOPClient *client = kapp->dcopClient();
client->attach();
if (!client->isApplicationRegistered("tdeio_uiserver")) {
- QString error;
+ TQString error;
if (TDEApplication::startServiceByName("tdeio_uiserver", QStringList(), &amp;error))
cout &lt;&lt; "Starting kioserver failed with message " &lt;&lt; error &lt;&lt; endl;
}
@@ -1275,7 +1275,7 @@ if (!client->call("tdeio_uiserver", "UIServer", "setListMode(bool)",
<para>В пиведенном примере, служба была запущена по имени ("by name"), т.е. первым аргументом <function>TDEApplication::startServiceByName()</function> является имя, указываемое в записи <literal>Name</literal> файла .desktop. Как альтернативу, можно использовать <function>TDEApplication::startServiceByDesktopName()</function>, которому передаётся имя файла .desktop, например <literal>"tdeio_uiserver.desktop"</literal>. </para>
-<para>Все эти вызовы берут список URL вторым аргументом. Третий аргумент - указатель на <classname>QString</classname>. Если произойдёт ошибка, в это строку будет занесено (локализованное) сообщение об ошибке. </para>
+<para>Все эти вызовы берут список URL вторым аргументом. Третий аргумент - указатель на <classname>TQString</classname>. Если произойдёт ошибка, в это строку будет занесено (локализованное) сообщение об ошибке. </para>
</simplesect>
@@ -1385,7 +1385,7 @@ else
<para>KMimeMagic поддерживает только локальные файлы. Для удалённых файлов: </para>
<programlisting>KURL url("http://developer.kde.org/favicon.ico");
-QString type = TDEIO::NetAccess::mimetype(url);
+TQString type = TDEIO::NetAccess::mimetype(url);
if (type == KMimeType::defaultMimeType())
cout &lt;&lt; "Could not find out type" &lt;&lt; endl;
else
@@ -1463,7 +1463,7 @@ KRun::run(offer.service(), urlList);
<para>Получить значок URL. </para>
<programlisting>KURL url("ftp://ftp.kde.org/pub/incoming/wibble.c");
-QString icon = KMimeType::iconForURL(url);
+TQString icon = KMimeType::iconForURL(url);
</programlisting>
<para>Выполненые URL. </para>
@@ -1542,7 +1542,7 @@ void FooClass::mkdirResult(TDEIO::Job *job)
<listitem><para>Переименовать файл. </para></listitem>
</varlistentry>
-<varlistentry><term>TDEIO::symlink(const QString &amp;target, const KURL &amp;dest, bool overwrite, bool showProgressInfo)</term>
+<varlistentry><term>TDEIO::symlink(const TQString &amp;target, const KURL &amp;dest, bool overwrite, bool showProgressInfo)</term>
<listitem><para>Создать символическую ссылку. </para></listitem>
</varlistentry>
@@ -1662,7 +1662,7 @@ TDEIO::NetAccess::copy(source, target);
<programlisting>KURL url;
url = ...;
-QString tempFile;
+TQString tempFile;
if (TDEIO::NetAccess::download(url, tempFile) {
// load the file with the name tempFile
// загрузить файл с именем tempFile
@@ -1699,12 +1699,12 @@ if (TDEIO::NetAccess::download(url, tempFile) {
void FooClass::transferResult(TDEIO::Job *job)
{
- QString mimetype;
+ TQString mimetype;
if (job->error())
job->showErrorDialog();
else {
TDEIO::TransferJob *transferJob = (TDEIO::TransferJob*) job;
- QString modified = transferJob->queryMetaData("modified");
+ TQString modified = transferJob->queryMetaData("modified");
cout &lt;&lt; "Last modified: " &lt;&lt; modified &lt;&lt; endl;
}
</programlisting>
@@ -1849,7 +1849,7 @@ int kdemain(int argc, char **argv)
<listitem><para>copy(const KURL &amp;url, const KURL &amp;dest, int permissions, bool overwrite)</para></listitem></varlistentry>
<varlistentry><term>Создаёт символическую ссылку.</term>
-<listitem><para>void symlink(const QString &amp;target, const KURL &amp;dest, bool overwrite)</para></listitem></varlistentry>
+<listitem><para>void symlink(const TQString &amp;target, const KURL &amp;dest, bool overwrite)</para></listitem></varlistentry>
</variablelist>