diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2023-10-13 18:02:18 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2023-11-16 21:32:11 +0900 |
commit | 83e7d90131a60206a219edf4a2ba9e570c689268 (patch) | |
tree | 46580d5604e909a3b3699b4e27201bcd66f3c18f /tde-i18n-ru/docs/tdevelop | |
parent | d3f6a5fb3fca54c14196ef9d16eed9a37e9516e9 (diff) | |
download | tde-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.docbook | 42 | ||||
-rw-r--r-- | tde-i18n-ru/docs/tdevelop/kdearch/index.docbook | 44 |
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( &hello ); -QObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); +TQObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); hello.show(); return a.exec(); } </programlisting> </para> -<para>Как видите, мы лишь расширили возможности кнопки с использованием метода <methodname>connect()</methodname>: <methodname>connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() ))</methodname> — всё, что мы добавили. Что же это означает? Объявление метода <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(&hello, SIGNAL( clicked() ), &a, SLOT( quit() ))</methodname> — всё, что мы добавили. Что же это означает? Объявление метода <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( &hello ); -QObject::connect(&hello, SIGNAL( clicked() ), &a, SLOT( quit() )); +TQObject::connect(&hello, SIGNAL( clicked() ), &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&)), -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>Излишним будет говорить, что стабильность - самая главная цель. Никто не может 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 &text)</methodname> </para> +<para>Для добавления такой справки, воспользуйтесь статическим методом <methodname>QWhatsThis::add(TQWidget *widget, const TQString &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 &, BrushStyle) - Цветная кисть.</para> +<para>QBrush::QBrush(const TQColor &, BrushStyle) - Цветная кисть.</para> </listitem> <listitem> -<para>QBrush::QBrush(const QColor &, const QPixmap) - Цветная кисть с заданным узором.</para> +<para>QBrush::QBrush(const TQColor &, 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<QPopupMenu *>(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<KParts::Factory*>(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(), &error)) cout << "Starting kioserver failed with message " << error << 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 << "Could not find out type" << 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 &target, const KURL &dest, bool overwrite, bool showProgressInfo)</term> +<varlistentry><term>TDEIO::symlink(const TQString &target, const KURL &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 << "Last modified: " << modified << endl; } </programlisting> @@ -1849,7 +1849,7 @@ int kdemain(int argc, char **argv) <listitem><para>copy(const KURL &url, const KURL &dest, int permissions, bool overwrite)</para></listitem></varlistentry> <varlistentry><term>Создаёт символическую ссылку.</term> -<listitem><para>void symlink(const QString &target, const KURL &dest, bool overwrite)</para></listitem></varlistentry> +<listitem><para>void symlink(const TQString &target, const KURL &dest, bool overwrite)</para></listitem></varlistentry> </variablelist> |