На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++

Страницы: (117) « Первая ... 34 35 [36] 37 38 ...  116 117  ( Перейти к последнему сообщению )  
> Delphi vs C++ , Часть 1
    Цитата Астарот @
    Я говорю не о простом рисовании гуйни, а о создании собственного элемента гуя, при чем реиспользуемого.

    http://doc.trolltech.com/4.2/widgets-analogclock.html
    Там С++, отсутствует WinAPI, в результате получается готовый для повторного использования компонент.
      Еще б меня прокся туда пустила :)
        Цитата Астарот @
        ще б меня прокся туда пустила :)
        ну, там строчек 100-150... достаточно просто для контрола?
          analogclock.h
          ExpandedWrap disabled
            #ifndef ANALOGCLOCK_H
             #define ANALOGCLOCK_H
             
             #include <QWidget>
             
             class AnalogClock : public QWidget
             {
                 Q_OBJECT
             
             public:
                 AnalogClock(QWidget *parent = 0);
             
             protected:
                 void paintEvent(QPaintEvent *event);
             };
             
             #endif


          analogclock.cpp
          ExpandedWrap disabled
            #include <QtGui>
             
             #include "analogclock.h"
             
             AnalogClock::AnalogClock(QWidget *parent)
                 : QWidget(parent)
             {
                 QTimer *timer = new QTimer(this);
                 connect(timer, SIGNAL(timeout()), this, SLOT(update()));
                 timer->start(1000);
             
                 setWindowTitle(tr("Analog Clock"));
                 resize(200, 200);
             }
             
             void AnalogClock::paintEvent(QPaintEvent *)
             {
                 static const QPoint hourHand[3] = {
                     QPoint(7, 8),
                     QPoint(-7, 8),
                     QPoint(0, -40)
                 };
                 static const QPoint minuteHand[3] = {
                     QPoint(7, 8),
                     QPoint(-7, 8),
                     QPoint(0, -70)
                 };
             
                 QColor hourColor(127, 0, 127);
                 QColor minuteColor(0, 127, 127, 191);
             
                 int side = qMin(width(), height());
                 QTime time = QTime::currentTime();
             
                 QPainter painter(this);
                 painter.setRenderHint(QPainter::Antialiasing);
                 painter.translate(width() / 2, height() / 2);
                 painter.scale(side / 200.0, side / 200.0);
             
                 painter.setPen(Qt::NoPen);
                 painter.setBrush(hourColor);
             
                 painter.save();
                 painter.rotate(30.0 * ((time.hour() + time.minute() / 60.0)));
                 painter.drawConvexPolygon(hourHand, 3);
                 painter.restore();
             
                 painter.setPen(hourColor);
             
                 for (int i = 0; i < 12; ++i) {
                     painter.drawLine(88, 0, 96, 0);
                     painter.rotate(30.0);
                 }
             
                 painter.setPen(Qt::NoPen);
                 painter.setBrush(minuteColor);
             
                 painter.save();
                 painter.rotate(6.0 * (time.minute() + time.second() / 60.0));
                 painter.drawConvexPolygon(minuteHand, 3);
                 painter.restore();
             
                 painter.setPen(minuteColor);
             
                 for (int j = 0; j < 60; ++j) {
                     if ((j % 5) != 0)
                         painter.drawLine(92, 0, 96, 0);
                     painter.rotate(6.0);
                 }
             }


          Результат
          user posted image
            Qt - шикарная библиотека для сишника. Один из плюсов - кросплатформенность.

            Формы проектируются в Дизайнере как .ui и потом подключаются к проекту.

            А новые виджеты создаются довольно легко - наследование и т.д.
            Сообщение отредактировано: lava -
              Цитата lava @
              Qt - шикарная библиотека для сишника. Один из плюсов - кросплатформенность.

              Только для коммерческого использования стоит как десяток дельфей ;)
                Цитата Smike @
                Только для коммерческого использования стоит как десяток дельфей ;)

                Наверно мы, сишники, поболее вашего зарабатываем ;)
                Я недавно расматривал цены на Qt для малого бизнеса. Под комерческий проект я могу себе позволить купить лицензию. Да и во время разработки можно не нарушая законы, тренироваться на халявной версии.

                ЗЫ: можно подумать у тебя Делфи лицензионный :D
                Сообщение отредактировано: Alex Forth -
                  Цитата archimed7592 @
                  ну, там строчек 100-150... достаточно просто для контрола?

                  Смотря что этот контрол умеет...

                  Цитата Alex Forth @
                  Результат

                  Ну, ты прикалываешься что ли? :lool: Если меня проксь по ссылке не пускает, то он и картинку не отдаст, он жадный у меня :)
                    Sorry
                    Прикреплённая картинка
                    Прикреплённая картинка
                      Мило :) Сам такой компонент не писал, но где-то валялся подобный, только там было еще свойство аналог/цифра, бэкграунд, и еще чего-то. Код был не намного болше, а может и меньше - я его только в печатном виде надлюдал, при чем с форматированием и комментариями.
                        Цитата mo3r @
                        А многие не переваривают лисповские скобки или всевозможные апострофы в лисповских макросах...

                        У меня, кстати, с этим тоже не все гладко :D
                        Цитата archimed7592 @
                        слышал я от одного авторитетного человека, что std::basic_string использует copy-on-write, после чего я и полюбил эту прекрасную библиотеку...

                        Когда-то читал такое мнение, что copy-on-write и некоторые другие техники в многопоточной среде могут привести к тормозам, так что всему свое место.

                        Добавлено
                        Цитата Smike @
                        Только для коммерческого использования стоит как десяток дельфей ;)

                        Да ладно ;) А если версия Delphi не для студентов, а какой-нибудеь Enterprise Edition? ;)
                          Цитата Alex Forth @
                          Наверно мы, сишники, поболее вашего зарабатываем ;)

                          Некорректное сравнение. Может и сишник зарабатывать 300 уё, а может и дельфист несколько килобаксов. Кроме того применительно к конкретному ПО это не имеет никакого отношения. А вот стоимость среды — влияет. Что лучше, покупать за 4000 зеленых президентов QT неизвестно для чего и не имея от этого прямой выгоды, или за 400 уе лицензионную Delphi, получив таким образом доступ к мощным возможностям языка, средствам создания интерфейса, 300-м стандартным компонентам и бесчисленному множеству посторонних (в т.ч. бесплатных).
                          Цитата Alex Forth @
                          ЗЫ: можно подумать у тебя Делфи лицензионный :D

                          Мимо. У меня лицензионная Turbo Delphi Professional 2006 :)
                            Цитата Smike @
                            Что лучше, покупать за 4000 зеленых президентов QT неизвестно для чего и не имея от этого прямой выгоды

                            Да ну что ты? Если за библиотеку готовы выложить такие деньги, то, поверь мне, и выгода предполагается, и вкложение делается "известно для чего".

                            Добавлено
                            Тем более, что за QT можно вполне честно ничего не платить.
                              Цитата Flex Ferrum @
                              Тем более, что за QT можно вполне честно ничего не платить.

                              Только для OpenSource $)

                              Добавлено
                              Цитата Flex Ferrum @
                              Да ну что ты? Если за библиотеку готовы выложить такие деньги, то, поверь мне, и выгода предполагается, и вкложение делается "известно для чего".

                              Ну тогда и не надо выставлять QT как полную альтернативу. Это слишком дорогая по цене "альтернатива" и именно о том и речь, что её покупают те, кому она действительно нужна.
                                Цитата Smike @
                                Ну тогда и не надо выставлять QT как полную альтернативу. Это слишком дорогая по цене "альтернатива" и именно о том и речь, что её покупают те, кому она действительно нужна.

                                Smike, если тебя не устраивает цена и лицензия на Qt, то это твои проблемы. :tong:
                                Я ее юзал и буду с удовольствием юзать.

                                ЗЫ: Desktop edition (полная версия=3300$) для мелкого бизнеса существуют нехилые скидки.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (117) « Первая ... 34 35 [36] 37 38 ...  116 117
                                Закрыто archimed7592 11-03-2008: Лимит страниц. Продолжаем Delphi vs C++



                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0862 ]   [ 15 queries used ]   [ Generated: 14.08.25, 13:19 GMT ]