Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2016, 19:22   #71
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Можно ж просто
Код:
mFileCount = paths.size();
А почему ActionState::RUNNING? Там ж наоборот завершение.
И в следующих 2 строках бред какой-то. Сначала написали в текст кнопки "Start", а потом тут же передумали и поменяли на "Cancel".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 19.10.2016 в 19:25.
Alex11223 вне форума Ответить с цитированием
Старый 20.10.2016, 09:30   #72
stasJun
Пользователь
 
Регистрация: 17.10.2016
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Можно ж просто
Код:
mFileCount = paths.size();
А почему ActionState::RUNNING? Там ж наоборот завершение.
И в следующих 2 строках бред какой-то. Сначала написали в текст кнопки "Start", а потом тут же передумали и поменяли на "Cancel".
если я правильно понял:
Код:
 for (int  index = 0; index < paths.size(); ++index)
        {
            QFileInfo fileInfo(paths[index]);
            mFileSize += fileInfo.size();
            mFileCount = paths.size();
        }
Код:
void FindFilesWidget::fileThreadFileProcessed(QString file, bool found)
{
    if (found)
    {
        addToQListWidget(file);
    }

    --mFileCount;
    if (mFileCount == 0)
    {
        mActionState = ActionState::STOPPED;
        mStartButton->setText("&Start");
    }
}
с канселом и стартом то я не увидел и случано еще и кансел вставил
stasJun вне форума Ответить с цитированием
Старый 20.10.2016, 09:47   #73
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем присваивать paths.size() на каждой итерации? Думаете с первого раза компьютер не поймет?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.10.2016, 09:52   #74
stasJun
Пользователь
 
Регистрация: 17.10.2016
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Зачем присваивать paths.size() на каждой итерации? Думаете с первого раза компьютер не поймет?
ой я в иф вставил, сорян)
Код:
void FindFilesWidget::fileThreadFileProcessed(QString file, bool found)
{
    mFileCount = paths.size();
    if (found)
    {
        addToQListWidget(file);
    }

    --mFileCount;
    if (mFileCount == 0)
    {
        mActionState = ActionState::STOPPED;
        mStartButton->setText("&Start");
    }
}
Код:
for (int  index = 0; index < paths.size(); ++index)
        {
            QFileInfo fileInfo(paths[index]);
            mFileSize += fileInfo.size();
        }
addToQListWidget(file); - а тут что нужно я так и не вшарил)
stasJun вне форума Ответить с цитированием
Старый 20.10.2016, 09:54   #75
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык теперь mFileCount всегда равен paths.size()-1 в конце fileThreadFileProcessed.


Цитата:
Сообщение от stasJun Посмотреть сообщение
addToQListWidget(file); - а тут что нужно я так и не вшарил)
вывод этого файла в UI.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.10.2016, 10:17   #76
stasJun
Пользователь
 
Регистрация: 17.10.2016
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Дык теперь mFileCount всегда равен paths.size()-1 в конце fileThreadFileProcessed.



вывод этого файла в UI.

теперь я не понял с mFileCount , а где его тогда делать paths.size() ?

Код:
void FindFilesWidget::fileThreadFileProcessed(QString file, bool found)
{
    if (found)
    {
        for (size_t index = 0; index < file.size(); ++index)
            mFoundFilesList->addItem(file[index]);
    }

    --mFileCount;
    if (mFileCount == 0)
    {
        mActionState = ActionState::STOPPED;
        mStartButton->setText("&Start");
    }
}
stasJun вне форума Ответить с цитированием
Старый 20.10.2016, 10:18   #77
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

где-нибудь до запуска.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.10.2016, 10:51   #78
stasJun
Пользователь
 
Регистрация: 17.10.2016
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
где-нибудь до запуска.
я тут напишу:
Код:
void FindFilesWidget::startClicked()
{
    mFileCount = paths.size();
    if(mActionState == ActionState::STOPPED)
    {
        mActionState = ActionState::RUNNING;
        mStartButton->setText("&Cancel");
        const int idealThreadCount = QThread::idealThreadCount();
        mThreads.reserve(idealThreadCount);
stasJun вне форума Ответить с цитированием
Старый 20.10.2016, 11:02   #79
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А разве paths уже заполнен в этот момент?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 20.10.2016, 11:08   #80
stasJun
Пользователь
 
Регистрация: 17.10.2016
Сообщений: 95
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
А разве paths уже заполнен в этот момент?
Код:
void FindFilesWidget::startClicked()
{
    if(mActionState == ActionState::STOPPED)
    {
        mActionState = ActionState::RUNNING;
        mStartButton->setText("&Cancel");
        const int idealThreadCount = QThread::idealThreadCount();
        mThreads.reserve(idealThreadCount);

        QDirIterator dirIt(mSearchDirectoryLine->text(), QDirIterator::Subdirectories);
        std::vector<QString> paths;
        while (dirIt.hasNext())
        {
            dirIt.next();
            if (QFileInfo(dirIt.filePath()).isFile())
            {
                if (QFileInfo(dirIt.filePath()).suffix() == "txt")
                    paths.push_back(dirIt.filePath());
            }
        }
        mFileCount = paths.size();
        for (int  index = 0; index < paths.size(); ++index)
        {
            QFileInfo fileInfo(paths[index]);
            mFileSize += fileInfo.size();
        }
stasJun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск слов в файле Stepan_P Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 0 25.12.2015 14:14
Поиск слов в текстовом файле slipkos Помощь студентам 4 02.06.2013 19:18
Поиск симметричных слов в файле Almost Паскаль, Turbo Pascal, PascalABC.NET 1 10.01.2013 08:53
Поиск слов в файле сушка Общие вопросы по программированию, компьютерный форум 1 08.04.2012 12:44
Поиск слов в текстовом файле svt Помощь студентам 8 07.11.2009 19:56