Задать вопрос
  • Почему иногда отваливается Wi-Fi на IdeaPad Flex 5?

    vxblog
    @vxblog
    Elizaveta_Kulpina, бинго! Это то, что нужно!
    Fatal error: The miniport has failed a power transition to operational power

    Это означает, что модуль зачем-то ушёл в режим энергосбережения. А выйти из него просто не смог.

    Возможные пути решения:
    • Отключить энергосбережение в настройках Wi-Fi модуля
    • Отключить энергосбережение ноутбука и всегда работать от сети
    • Обновить драйвер - имеет смысл, только если вышел новый (и проблему в нём исправили)
    Написано
  • Почему системник бьет током?

    vxblog
    @vxblog
    Helish, я просто сходу отверг причину по которой этого точно не может происходить. А сами причины, разумеется, могут быть самые различные.

    Вы поставили новый кулер. Мог увеличиться воздушный поток. А в воздухе всегда есть микро-частицы пыли. Их трение о корпус может приводить к накоплению статического заряда на корпусе. Пусть вас это не удивляет. Накопление статического заряда из-за движения воздуха происходит даже в авиации (см. Электростатический разрядник) и на море (см. Огни Святого Эльма).

    Вы поставили новый кулер. Это вас обрадовало. Может, вы от радости сидите и трясёте ногой, и натираете тканью одежды корпус. Из-за чего он электризуется :-)

    Ну и последнее. Сейчас зима. Может, вы просто стали носить другую одежду. В этом случае, вы сами становитесь носителем статического заряда. И корпус системного блока становится местом электрического разряда при прикосновении.
    Написано
  • Как получить файлы из папок и подпапок?

    vxblog
    @vxblog
    QList <QString> files;
    
    void SearchFiles::scanDir (const QDir &dir){
        if(!dir.exists()){
            isFind = false;
            return;
        }
    
        QDirIterator it (dir.path (), QDir::Files, QDirIterator::Subdirectories);
        while (it.hasNext()) {
            it.next();
            files << it.fileInfo ().absoluteFilePath();
        }
    }
  • Почему поле lineEdit не реагирует на enter?

    vxblog
    @vxblog
    Как я понял, код должен быть кросс-платформенным? В этом случае для объявления строковых констант гораздо удобнее использовать макросы, например Q_OS_WIN и Q_OS_LINUX.

    На мой взгляд, вы неправильно пытаетесь запустить параллельный процесс. Ваша логика совершенно верна - под Windows нам необходимо запустить cmd и передать ему набор параметров, разделённых пробелами. Возможны два варианта реализации (для Qt 5).
    • Установить запускаемую программу (QProcess::setProgram) и аргументы (QProcess::setArguments), затем вызвать QProcess::start без параметров.

    • Вызвать QProcess::start с указанием программы и аргументов. Обращаю ваше внимание, что в этом случае метод принимает не один (как у вас), а два обязательных параметра - имя программы и контейнер аргументов.

    В обоих случаях речь идёт о предварительном формировании контейнера аргументов. Например, с помощью метода QString::split.

    void SecondWindow::command()
    {
      // Под Windows вызывается cmd,
      // для всего остального - sh
    
      QString c;
    
    #ifdef Q_OS_WIN
      c = QLatin1String ("cmd");
    #else
      c = QLatin1String ("sh");
    #endif
    
      // Формирование контейнера аргументов
      // и вызов программы
      QStringList args = ui->lineEdit_4->text ().split (QLatin1String (" "));
      m_process->start (c, args);
    }