К основному контенту

Сообщения

Сообщения за 2009

Анализируем утечки памяти в Java приложениях, используя VisualVM

Здесь можно прочитать на русском об анализе утечек памяти в Java приложениях, используя VisualVM. Это перевод статьи, занявшей первое место в Java VisualVM Blogging Contest . Оригинал (на английском) можно прочитать здесь .

Изучение Qt маленькими порциями. Прекращение перевода

К сожалению, из-за нехватки времени вынужден прекратить перевод статей цикла "Изучение Qt маленькими порциями."

Изучение Qt маленькими порциями. Qt и Python

Когда я написал о Qt и BASIC, мне сказали, что стоит написать также о Qt и Python. И я не могу не согласиться с этим. В Riverbank Computing проделали огромную работу, чтобы предоставить связку Qt и Python, а также инструменты для общественности. Для всех пишущих на Python: вы можете получить модуль PyQt4 отсюда . from PyQt4.QtCore import * from PyQt4.QtGui import * if __name__ == "__main__": app = QApplication(sys.argv) w = QWidget() w.show(); app.exec_()

Изучение Qt маленькими порциями. Сигналы и слоты. Первый взгляд

Сигналы и слоты - одни из ключевых компонентов, которые делают Qt особенной. Они позволяют связать события со слотами таким образом, что вы можете обработать не только нажатие кнопки, выбор флажков, редактирование текста, но и изменение значений, таймауты по таймеру и много другого. Чтобы ваше Qt приложение что-то делало, нужно только связать сигналы со слотами. Это можно сделать тремя способами. Прошлый раз мы рассмотрели два из них; давайте повторим. Связь по имени . В этом случае слот называется по шаблону on_widget_signal . Эта связь создаётся, когда вы вызываете setupUi и связываете простые события со слотом. Имена слотов не всегда наилучшие с точки зрения читаемости и повторного использования, но зато это просто и быстро. Также этот тип связи может быть создан по правому щелчку кнопкой мышки в окне Дизайнера QtCreator'а. Связывание с использование метода connect . Указывая объект-источник сигнала, имя сигнала, целевой объект и имя слота, вы можете связать любой сигнал с любы

Изучение Qt маленькими порциями. Заставляем приложение что-то делать

Итак, прошлый раз мы разбирали шаблон приложения, сгенерированный QtCreator. На этот раз я обещал, что оно будет делать что-то. Начнём с окна дизайнера QtCreator (перейти к нему можно по двойному щелчку по mainwindow.ui). Давайте рассмотрим различные части окна одну за другой. Список виджетов - область, в которой показаны все доступные виджеты. Имеется два режима отображения: в виде списка и в виде значков. Я предпочитаю режим значков (показанный на рисунке), но режим отображения списка может быть полезным для начинающих. Сменить режим можно из контекстного меню. Для добавления виджета на форму достаточно перетащить его отсюда в место назначения. Окно свойств - здесь отображаются настройки для текущего виджета. Попробуйте выделить виджет на форме или саму форму и вы получите полный набор свойств, доступных для настройки. В иерархии объектов показано как всё связано между собой. Например, все виджеты будут размещены внутри экземпляра QMainWindow (названого MainWindowClass). Если вы и

Изучение Qt маленькими порциями. Qt и BASIC

Помните ли вы старые добрые времена: 10 print "You're Qt" 20 goto 10 Для всех поклонников BASIC: существует (насколько мне известно) два диалекта BASIC, используя которые вы можете разрабатывать приложения Qt - это Gambas and KBasic . Gambas поддерживает и Qt и GTK+. В нём есть поддержка объектов (как в VB 6). Но в то же время он не совместим с VB. Проект имеет графическую среду, в которой вы можете разрабатывать и отлаживать ваши приложения, и существует уже немало лет. KBasic в отличие от Gambas совместим с QBasic, VB и VBA. Это одна из целей проекта. У него тоже имеется визуальная среда разработки, в составе которой есть отладчик. Проект выглядит весьма перспективным. Должен признаться, прошло немало лет с тех пор, как я разрабатывал на BASIC (я использовал VB6) и не пробовал проекты, упомянутые выше. Однако, оба они бесплатны, так что вы можете просто скопировать их и попробовать.

Изучение Qt маленькими порциями. Разбираем ваше первое приложение

Прошлый раз вы установили QtCreator, а затем сгенерировали ваше первое приложение. Всё сработало и у вас теперь есть собственное пустое окно QMainWindow на экране. Всё хорошо, но что же действительно было сделано? Давайте пройдёмся по сгенерированному коду, чтобы стало понятно, что же случилось на самом деле. Приложение состоит из одного класса и функции main, необходимой для запуска. Давайте посмотрим на эту функцию main.cpp #include <QtGui/QApplication> #include "mainwindow.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } В этой функции создаётся экземпляр класса QApplication . Каждому приложению Qt нужен один и только один экземпляр класса QApplication. Он представляет собой само приложение и содержит главный цикл обработки событий. Вы можете спросить, что такое цикл обработки событий? Это просто цикл, ожидающий наступления события. Например, нажатие клавишы, перемещение мышки, сетевые пакеты, событ

Изучение Qt маленькими порциями. Получаем Qt

Перед тем как приступить к изучению Qt, необходимо её скачать. Проще всего это сделать, посетив http://www.qtsoftware.com/ , на котором можно найти раздел для скачивания. Если вы только приступаете к изучению Qt, то наиболее предпочтительным вариантом будет свободный для скачивания SDK, в котором есть всё необходимое. Вы найдёте различные версии для различных платформ - просто выберите наиболее подходящую вам. Если вы работаете в Linux и неуверены, используете ли вы 32-битную или 64-битную платформу, просто наберите в консоли uname -m . Если в результате увидите i386 или i686, значит у вас 32-битный Linux. Если же там будет написано x86_64 или 64bit, значит используется 64-битный Linux. Теперь вам достаточно следовать инструкциям инсталлятора, чтобы установить QtCreator, последнюю версию Qt вместе со всеми инструментами. При запуске инсталлятора вы можете столкнуться с небольшими трудностями. Так, например, в Linux файл необходимо сделать исполняемым, выполнив команду chmod +x . В Vist

Изучение Qt маленькими порциями

В этой серии публикаций планируется рассказать о библиотеке Qt, её использовании, инструментах, упрощающих работу с ней. Материал в первую очередь предназначен для новичков. С англоязычным оригиналом можно ознакомиться на этом блоге . Здесь я буду размещать переведённые статьи на русский язык.