ProgressBar на QtConcurrent |
Здравствуйте, гость ( Вход | Регистрация )
ProgressBar на QtConcurrent |
Fitz |
22.11.2010, 15:30
Сообщение
#1
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 22.11.2010 Пользователь №: 2207 Спасибо сказали: 0 раз(а) Репутация: 0 |
Уважаемые, хочу прикрутить к терминалу COM-порта ProgressBar загрузки файла в порт.
Сделав, соответстветственно, загрузку файла отдельным потоком. Заюзал Qt'шный экзампл Progress Dialog, где используют QtConcurrent. Код: mainwindow.h
mainwindow.cpp
Компилятор ругается в futureWatcher.setFuture(QtConcurrent::map(fileList, MainWindow::loadFile));, мол там нужен адрес функции, однако и подстановка адреса не помогает. Что делаю не так? Возможно есть более грамотное решение с QThread, подскажите. |
|
|
Fitz |
24.11.2010, 20:14
Сообщение
#2
|
Студент Группа: Новичок Сообщений: 13 Регистрация: 22.11.2010 Пользователь №: 2207 Спасибо сказали: 0 раз(а) Репутация: 0 |
После осознания наваял следующую конструкцию, котороая, как ни странно, заработала.
Создал отдельный класс прошивки: ufirmware.h
ufirmware.cpp
Теперь применение: mainwindow.cpp
Вопрос раз: необходимо ли делать класс uFirmware потокобезопасным? Вопрос два: код работает не совсем так, как мечталось - futureWatcher вычисляет только работу метода класса, а вот используемый им метод сторонней библиотеки AbstractSerial::write(QByteArray a)(в интересах которого, собственно, и выделяется отдельный поток) в расчет не берется. Выходит надо работать напрямую с классом AbstractSerial? Но тогда каким образом передавать методу записи в порт write(QByteArray a) этот внешний параметр? |
|
|
Текстовая версия | Сейчас: 14.1.2025, 12:16 |