• Qt. Как сделать скриншот виджета и вывести его на печать?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    А через обычный QWidget::render пробовали? doc.qt.io/qt-5/qwidget.html#render
    Записали в QPixmap, а с ним уже что угодно можно делать.
    Ответ написан
    Комментировать
  • Можно ли переопределять сигналы базового класса?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Всё довольно просто (точно так же можно и со слотами):
    class IFoo
    {
    public:
        virtual void signal1() = 0;
        virtual void signal2() = 0;
    }
    
    class Bar : public QObject, public IFoo
    {
        // ...
    signals:
        void signal1();
        void signal2();
    }

    В Qt нет виртуального наследования для QObject. А тела чисто виртуальным методам будут сгенерированны в moc_* файлах.
    Ответ написан
    4 комментария
  • А как вы смотрите на то, чтобы авторы качественных ответов получали денежное вознаграждение?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    И зачем это администрации? Трафик идёт и так хороший, я думаю.
    Другое дело, сделать так, чтобы вопрос нельзя было задать бесплатно... Ограничить количество вопросов, ответы на которые легко гуглятся, так сказать, ну и активность школьников заодно. Правда это экономически не выгодно, так что о качестве заботиться никто не будет.
    Ответ написан
    Комментировать
  • Ну что как теперь видите?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Уже где-то лет 12 провожу почти каждый день, включая выходные и исключая отпуск, за компьютером в среднем часов по 8-10, чаще больше. Причем, сначала это были компьютеры с выпуклыми мониторами и дополнительной защитой поверх монитора... Зрение до сих пор 100%. Ходил проверялся месяца 4 назад, сказали что всё ок.

    Я считаю, что зрение в больше степени зависит от генетики. Я бы порекомендовал использовать хороший монитор. Мне, например нравятся мониторы Dell UltraSharp c IPS (уже можно и AH-IPS) и диагональю 27 дюймов. Да и вообще на здоровье влияет ещё и организация рабочего места. Одно дело работать в помещении с плохой освещённостью, неудобным столом и креслом, на компьютере с маленьким TN-монитором, плохим железом и неудобной клавиатурой... и совсем другое дело когда есть нормальные условия для работы. Конечно нормальные условия есть далеко не везде, но это другой вопрос.
    Ответ написан
    Комментировать
  • Булевский параметр закрытия формы QT C++ GUI?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    У любого виджета есть слот close(), который возвращает true, если виджет успешно закрыт.
    У Qt отличная документация qt-project.org/doc/qt-4.8/qwidget.html#close.
    Сначала поищиет там, потом в гугле, потом пишите вопрос. Это же так просто)

    И Qt, а не QT.
    Ответ написан
    Комментировать
  • Какой дистрибутив Linux у вас установлен?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    У меня openSUSE уже года три примерно. Пользуюсь и по работе (C++/Qt) и дома, в качестве основной системы. Когда для интереса изучал Ruby, а потом и Rails, всё отлично работало.
    Я думаю, что вам подойдёт любой дистрибутив на первое время. Поработаете с год под линуксом, там уже и определитесь, что вам надо. Ну и от винды будете плеваться)
    Ответ написан
    Комментировать
  • Зачем нужен ООП?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Вот вы говорите, что пользуетесь уже готовыми классами для решения каких-то задач... Прекрасно! А теперь попробуйте реализовать такую же функциональность, но без использования классов (и вообще ООП, т.к. это не только классы на самом то деле), а потом сравните код, который у вас получился с первичной ООП реализацией. Сравнивайте с точки зрения удобства использования, лёгкости сопровождения и восприятия другими разработчиками. Ещё можете сравнить с точки зрения тестирования и простоты добавления нового функционала.
    Думаю, что сразу поймёте зачем нужен ООП.

    PS
    Хотя, тут возможен вариант, что вы ещё не сталкивались с задачами, которые необходимо (ок, удобно) решать с использованием ООП... Так заодно и столкнётесь)
    Ответ написан
    Комментировать
  • Как число 12345 сделать строкой в QT?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Скорре всего никак, т.к. QT -- это скорее всего QuickTime, но никак не Qt.
    Ответ написан
  • Можно ли уже пользоваться CLANG?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Да чего уж там 11, уже 14 поддерживается.
    Попробуйте под линукс скачать gcc-5 (4.8, 4.9) и откройте для себя флаги компиляции.
    Ответ написан
    Комментировать
  • Сколько времени вы максимально искали баг?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Максимум искал баг 10 рабочих дней. Исправлял минут 10 )
    Ответ написан
    Комментировать
  • Изучение C++ по книге Шилдта, 3 издание, 2010 года до сих пор актуально?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Шилдта не читал.
    Считаю, что C++11 без C++ вы попросту не поймете. Как ни крути, а C++11 всего лишь патч, пусть и очень крутой и удобный (в особенности с C++14). У нас пока будет повсеместно использоваться C++11 пройдёт еще лет пять (да и то останется тонна легаси кода, который проще поддерживать на C++, чем перевести на С++11) + у вас 80-100% (от компании зависит) вопросов на собеседовании будут по обычному C++.
    Мой совет: выучите C++ по любому учебнику, попутно много программируя. Потом откройте статью в Вики по C++11 или FAQ от Страуструпа и прочитайте. Можно еще последнюю книжку по C++11/14 Скотта Мейерса прочитать. Хорошая книжка, рекомендую. К тому времени, как вы освоите C++ уже мб и на русском выйдет.
    Ответ написан
    Комментировать
  • Как в C++ в эдит запретить вводить какието символы?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Вы и правда считаете, что для плюсов есть только одна библиотека для GUI? Что используется для GUI, какой эдит? Где пример кода с вашими попытками решить эту проблему?
    А так-то, вот вам общий ответ: валидатор или параметр, который хранит код символа, в обработчике события нажатия на клавишу. Дальше думайте (ну хоть раз, плз, просто попробуйте -- это не сложно и даже интересно) сами.
    Ответ написан
    Комментировать
  • Стоит ли работать и учиться на программиста?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Стоит. Обязательно идите. Чем вас будет больше, тем ценнее программисты будут как специалисты.
    И "работать на программиста" тоже стоит. Мне вот тут пол помыть пару раз в неделю нужно бывает.
    Ответ написан
    Комментировать
  • Есть ли у Qt механизм переадресации сигнала Child от имени Parent?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Что мешает присоединить сигнал к сигналу?
    connect(seekSlider, SIGNAL(sliderMoved(int)), this, SIGNAL(sliderMoved(int)));

    Не знаю правда зачем, но ваш пример можно переписать так без использования дополнительных методов.

    PS
    А ещё откройте для себя синтаксис слотов и сигналов из Qt5: qt-project.org/wiki/New_Signal_Slot_Syntax
    Ответ написан
    1 комментарий
  • Чем Классы отличаются от обычных функций? C++?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Откройте любую книжку по C++ и вдумчиво прочитайте с первой до последней страницы, попутно набирая весь код и выполняя задания.
    Ответ написан
    Комментировать
  • Почему в ШАД и СS центре такой упор на С++?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Используя C++ нет необходимости платить за то, чем не пользуешься. Сколько бы не ругали C++, программы на нём получаются быстрыми и экономными в плане использования ресурсов. Чем быстрее работают программы, тем быстрее обрабатываются большие объёмы данных. Чем меньше ресурсов требуют программы, тем меньше надо аппаратного обеспечения. Очень упрошёно, но смысл примерно таков.
    Учитывая тот факт, что CS (филиал ШАД в Питере) и ШАД готовят специалистов для Яндекса, вполне очевидно, что обучать там будут технологиям, которые в перспективе принесут прибыль компании.
    Ну ещё следует учесть тот факт, что после C++ выучить любой язык, на котором надо писать много кода, пока солнце еще высоко (Java, C#) не составляет особого труда, а скрипты вроде Python вообще кажутся игрушкой. Т.е. один раз обучив заинтересованного человека C++ мы получим спецалиста, который понимает как всё работает и без труда освоит необходимый стек технологий.
    (Разумеется я не говорю, что только C++ в рамках курсов ШАД сделает из человека специалиста, нужно еще много знаний из связанных областей.)
    Ответ написан
    1 комментарий
  • В коде ошибка 85 написано что точку запятой поставить должен но куда?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    www.pascal.helpov.net/index/pascal_WriteLn
    Первая ссылка из гугла. Сравните и найдите свою ошибку.
    Ответ написан
    Комментировать
  • Чем можно мониторить активность работы сотрудников?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    Что в вашем понимании означает что работники халтурят?
    Как тут уже и написали, время работы в какой-либо среде (например) -- это не показатель того, что программист работает/не работает. Допустим, когда прототипируется новая функциональность, рефакториться что-то большое или отлаживается очень сложный код, активность в большей степени и вправду связана со средой разработки. Да и то, перерывы на дискусси с коллегами, code review, чтение документации и т.д. А бывают и случаи с отладкой какого-нибудь сложного бага, когда программист за неделю может написать 5-10 строк кода. А потом этот фикс, допустим вытащил еще пару-тройку не менее сложных проблем.
    Да разные ситуации бывают, и глупые метрики вроде логирования действий или счёта времени работы программах просто не работают. Возможно вам стоит посмотреть в сторону гибкой разработки а не всяких шпионских штук? Ежедневные совещания, разные митинги и ревью, открытый обмен мнениями, оценки... Все это добавляет игровой и соревновательные элемент, разработчик, например, готовится к презентации того что он реализовал, старается сделать лучше, сам участвует во временной оценке задач и пр. Вот это всё реально увеличивает производительность и даёт возможность продемонстировать результаты своей работы. А если человек ничего не делает, это видно.
    Ответ написан
  • Как организовать код через ООП для простой задачи?

    vt4a2h
    @vt4a2h
    Senior software engineer (C++/Qt/boost)
    На самом деле, написав программу с GUI вы, в большинстве случаев, уже использовали все механизмы ООП, даже если сами не написали ни одного класса. Но, думаю, что вашего преподавателя такой ответ не удовлетворит, поэтому вот несколько вариантов:
    1. Наследовать от базовых графических элементов и создать: класс игрового поля, клетки, содержимого клетки... И куда фантазия заведует. Полиморфным будет метод рисования, как минимум. На мой взгляд вариант плох.
    2. Наследовать от класса кнопки и реализовать соответствующие поведение: флажок там ставить на правый клик и т.д. Ну и при генерации поля кнопки будут просто размещаться в нужном порядке. Тут возможно придётся переопределить метод обработки событий для кнопки ну или что-то похожее сделать...
    3. Есть же у вас класс игры, вот и добавьте класс предка IGame, с виртуальным методом play(). Это быстро и решительно позволит использовать недостающие принципы ООП. Самый короткий, и печальный вариант) Но цель же сдать работу, как я понимаю.
    Ответ написан
    Комментировать