• Почему если вызывать QWidget::show() через точку, то не показывает?

    bogolt
    @bogolt
    Вам уже ответили правильно, хочу добавить что в Qt все окна и контролы нужно создавать в куче ( так как тогда сама Qt сможет корректно их удалить ). Кроме того при создании нового объекта не забывайте указать ему на его родителя ( в вашем случае при создании QWidget внутри класса Widget -
    QWidget* w = new QWidget(this);
    QLineEdit *line = new QLineEdit(w);
    Ответ написан
    1 комментарий
  • Почему если вызывать QWidget::show() через точку, то не показывает?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    достаточно мне заменить точку на стрелочку и, разумеется, объект на указатель на объект и (о чудо!) всё работает

    Самого главного не сказал: "и объект QWidget на стеке текущей функции на объект в куче".

    Чисто академический вопрос: почему так?

    Потому что в первом случае виджет разрушается при выходе из функции show_widget, а во втором остаётся болтаться в куче. Выход происходит сразу после возврата из QWidget::show, а сам этот вызов неблокирующий.
    Ответ написан
    1 комментарий
  • Проблема с локальными статическими переменными. Соответствует ли это стандарту?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Ключевое слово static как раз предназначено для того чтобы переменная вела себя как глобальная. Почему бы вам не объявить обычный член класса А, тогда он будет принадлежать экземпляру класса?
    Ответ написан
    1 комментарий
  • Может ли веб-разработчик пользоваться OS Windows?

    @pudovMaxim
    web-developer
    Вы действительно считаете, что уровень Вашего опыта зависит от того какую ось используете?
    И да, Вы уже глупо выглядите, задавая такие вопросы :)
    Ответ написан
    Комментировать
  • Может ли веб-разработчик пользоваться OS Windows?

    Zippovich
    @Zippovich
    сплю, ем, сплю, ем, сплю, ем
    очень глупый вопрос, ИМХО
    Ответ написан
    Комментировать
  • В двух словах, что такое БЭМ?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    БЭМ - это такая методология вёрстки от Яндекса. Она подразумевает разбиение страниц на отдельные смысловые блоки (комментарий, пост, заголовок, футер, форма, инпут и т.п.). Каждый блок может состоять из других блоков. Основная идея - как можно больше повысить возможность повторного использования уже написанных блоков, для чего используются модификаторы. Плюс, БЭМ подразумевает отказ от каскадных стилей, потому что они препятствуют повторному использованию.
    Например, на странице есть два разных заголовка (например, отдельно в статье, и отдельно во врезке). Как все привыкли делать это? есть код заголовка:
    <h1 class="header">Заголовок</h1>
    И мы ставим эти заголовки в текст статьи и во врезки:
    <article class="article">
        <h1 class="header">Заголовок</h1>
        <p>Текст текст текст</p>
    </article>
    <aside class="incut">
        <h1 class="header">Заголовок</h1>
        <p>Текст текст текст</p>
    </aside>

    Тогда обычно мы используем каскад, чтобы стилизовать заголовок во врезке:
    .header {font-size: 2em; padding-bottom: 1.5em;}
    .incut .header {text-decoration: italic;}

    Всё хорошо, но теперь мы не можем просто перенести эти стили заголовка во врезке в другое место, потому что эти стили привязаны именно ко врезке (классу incut). Плюс, что ещё хуже, если к элементу привязано несколько различных стилей, образующихся подобными каскадными правилами, то перенести такой внешний вид в другое место становится очень трудоёмко. А также, из-за большей специфичности каскадных стилей, их сложнее "перебить" новым стилем.
    БЭМ предлагает отказаться от каскадных стилей и создавать отдельные стили-модификаторы:
    <article class="b-article">
        <h1 class="b-article__header">Заголовок</h1>
        <p>Текст текст текст</p>
    </article>
    <aside class="b-article b-article__incut">
        <h1 class="b-article__header b-article__header_incut">Заголовок</h1>
        <p>Текст текст текст</p>
    </aside>


    .b-article__header {font-size: 2em; padding-bottom: 1.5em;}
    .b-article__header_incut {text-decoration: italic;}


    Чем больше проект, тем выгоднее использование подобной методологии. На маленьких и средних проектах БЭМ может быть избыточен. Хотя вот была статья habrahabr.ru/company/yandex/blog/234905 про использование в маленьких проектах.

    БЭМ может использоваться самостоятельно, вручную создавая все элементы и блоки. Но существует обширный инструментарий для БЭМа, который помогает создавать библиотеку элементов и блоков.

    Ну вот. Получилось не в двух словах, но менее подробно качественно описать БЭМ не получится, имхо.
    Ответ написан
    Комментировать
  • Как отключить "прогрев" звука в Windows 7?

    zmeyjr
    @zmeyjr
    Дисклеймер в профиле.
    Смотрите настройки эффектов в панели звукового драйвера и/или Windows.
    Ответ написан
    Комментировать
  • Как отключить "прогрев" звука в Windows 7?

    Jump
    @Jump Куратор тега Windows
    Системный администратор со стажем.
    Особенность драйвера. стоит покрутить настройки драйвера или поставить другой.
    Ответ написан
    Комментировать
  • Как решить проблему с обновлением программ в Ubuntu?

    Losted
    @Losted
    Software Architect
    Поддержка до 17 года не означает, что там будут последние версии всех приложений. Это значит только то, что в течение этого времени будут выпускаться фиксы багов. Если необходима более новая версия определенного приложения, то ищите неофициальные репозитории.
    Ответ написан
    Комментировать
  • Как развернуть(deployment) Qt приложение на windows?

    EXL
    @EXL
    Энтузиаст
    Вы неправильно развертываете плагины, они должны располагаться в каталоге с программой в поддиректориях.

    Структура проекта, который будет запускаться на других компьютерах должна быть такой:

    Current Directory/
    	|
    	+-platforms/
    	|	|
    	|	+-qwindows.dll
    	|
    	+-sqldrivers/
    	|	|
    	|	+-qsqlite.dll
    	|
    	+-DatabaseAnime.exe
    	|
    	+-Qt5Core.dll
    	|
    	+-Qt5Gui.dll
    	|
    	+-Qt5Sql.dll
    	|
    	+-Qt5Widgets.dll
    	|
    	+-icudt52.dll
    	|
    	+-icuin52.dll
    	|
    	+-icuuc52.dll
    	|
    	+-libgcc_s_dw2-1.dll
    	|
    	+-libstdc++-6.dll
    	|
    	+-libwinpthread-1.dll

    И ещё несколько советов.
    1. Если ваш проект не использует QtWebkit, вы можете пересобрать библиотеку Qt 5.3.1, без библиотеки icu, тогда ваше приложение "похудеет" на 27 MB.
    2. Опять же, если вы не используете QtWebkit, вы можете собрать Qt 5.3.1 статически, получив единый испольнительный файл без всяких внешних DLL-библиотек и плагинов, который можно сжать upx'ом и получить exe-файл приемлемых размеров (~3-5 MB).

    Подробнее про развертывание можно прочитать в официальной документации.
    Ответ написан
    2 комментария
  • Как сделать, чтобы код работал?

    Скорей всего подключение скрипта происходит в head а там body еще не существует, по пробуйте инициализацию делать по событию полной загрузки страницы вот так
    $(function(){
        disableHover = new DisableHover($("body"));
    
        disableHover.scroll();
    });
    Ответ написан
    2 комментария
  • Как посчитать кол-во вхождений строк в файл?

    mrstrictly
    @mrstrictly
    "Несколько миллионов" для современных объемов оперативной памяти -- это не проблема. Имеет смысл уточнить ограничения, накладываемые на вашу программу. Вы пробовали решить ее "в лоб"? Не занимаетесь ли вы преждевременной оптимизацией? :)
    Если объем входного текста действительно не ограничен сверху, тогда это задача выглядит, например, как один из класссических примеров map-reduce (я ни в коем случае не о фреймворках, хадупах и прочих зукиперах, а об идее), которая сводится к тому, чтобы разбить входной поток на N фрагментов фиксированного размера (например, по миллиону строк), посчитать количество слов в каждом фрагменте независимо (шаг map), получив на выходе N наборов ключ-значение (где, ключ -- слово, значение -- число вхождений), далее просуммировать эти наборы (шаг reduce). Если число ключей на выходе map опять же огромно (что я себе представляю с трудом для "натуральных" языков), можно шардить промежуточные результаты, когда шаг map на выходе выдает не один сплошной файл, а K фрагментов (например, первый -- слова на "a-c", второй -- на "d-f" и т.д.). Здесь немного подробнее об этом: michaelnielsen.org/blog/write-your-first-mapreduce...
    Ответ написан
    1 комментарий
  • Как посчитать кол-во вхождений строк в файл?

    @RPG
    С++11 + unordered_map. Не метеор, но map стабильно обгоняет и для решения задачи за глаза хватит.

    А вообще вот так это решается в Bash:
    sort file | uniq -c
    Если структура сложная, то предварительно нужно выделить ключ из файла, например так:
    $ cut -d: -f7 /etc/passwd | sort | uniq -c
          2 /bin/bash
          1 /bin/sync
          1 /sbin/halt
         34 /sbin/nologin
          1 /sbin/shutdown
    Ответ написан
    Комментировать
  • Почему компилятор выдает error C2065 (ежедневная рубрика "Магия С++")?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Мне кажется, правильное название вашей рубрики -- "алло, мы ищем телепатов".
    Ответ написан
    5 комментариев
  • Почему не работает if - elseif со скобкой?

    mlnkv
    @mlnkv
    JavaScript Developer
    не стесняйтесь ставить фигурные скобки (пока не постигнете дзен :) )

    if (empty($useremail)) {
      echo 'Введите Вашу почту';
    } elseif (!filter_var($useremail,FILTER_VALIDATE_EMAIL)) {
      echo 'Не правильно введен E-mail';
    } elseif (strlen($useremail) > 0) {
      $query = sprintf("SELECT user_email FROM users WHERE user_email = '%s' LIMIT 1",mysqli_real_escape_string($link,$useremail));
      $result = mysqli_query($link, $query);
      if (mysqli_num_rows($result) == 1) {
        echo 'Такой E-mail уже занят. <a href="/?do=lost">Восстановить пароль?</a>';  
      } elseif (empty($username)) {
        echo 'Введите Ваше имя';
      } elseif (strlen($username) < 2 ) {
        echo 'Имя должно быть более 2 букв';
      }
    }
    Ответ написан
    2 комментария
  • Есть ли рускоязычная среда програмирования?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Программируйте на 1C.
    Ответ написан
    3 комментария
  • Почему не видно определение класса?

    Какую ошибку компилятор репортит самой первой? И хорошо бы показать как вы определяете класс MyClass, есть подозрение, что у вас там просто ошибка.

    И еще, это не особо относится к делу, но похоже, тут у вас ошибка:
    #ifndef MYSECLASSES_H
    #define MYCLASSES_H


    такие гарды не защищают от повторного включения - стоит это поправить.

    UPD: вы показываете определение класса MyClass:
    MyClass {declaration} // My class (not template) contains static methods only

    (хотя ваше сокращение какое-то странное), а используете класс MyClasses:
    MyClasses::StaticMethod(); // или так my::MyClasses::StaticMethod();

    вы уж определитесь что вам нужно, MyClass или MyClasses?
    Ответ написан
    4 комментария
  • Qt не видит сигнал, как исправить?

    @danilevskiy
    C++/Qt Developer
    Вместо:
    QObject::connect(UIManager::GetInstance()->GetProjectTree(),
                         SIGNAL(ProjectTree::AddedSolutionByUser(QString&)),
                         SolutionManager::GetInstance(),
                         SLOT(SolutionManager::AddNewSolutionByUser(QString&)));


    Напишите:
    <QObject::connect(UIManager::GetInstance()->GetProjectTree(),
                         SIGNAL(AddedSolutionByUser(QString&)),
                         SolutionManager::GetInstance(),
                         SLOT(AddNewSolutionByUser(QString&)));
    Ответ написан
    1 комментарий