Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
QT как из другого потока изменить свойство объекта формы?
|
|||
|---|---|---|---|
|
#18+
Для примера. есть две кнопки и два label (тексты = "0"). при нажатии на первую кнопку запускается цикл от 0 до 1000 например и при каждой итерации значение итерации выводится в первый Label. при этом если во время этого цикла нажать на вторую кнопку то значение второго Label должно увеличиться на 1 не дожидаясь пока закончится цикл. сделал маленькую прогу, но выходит ошибка . при нажатии на первую кнопку 0 ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned by a different thread. Current thread b08f90. Receiver 'MainWindow' (of type 'MainWindow') was created in thread 1a95e8", file kernel\qcoreapplication.cpp, line 514 QObject::~QObject: Timers cannot be stopped from another thread Код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 19:53 |
|
||
|
QT как из другого потока изменить свойство объекта формы?
|
|||
|---|---|---|---|
|
#18+
Картежник, так пока все понятно надо было убрать this->repaint(); но надо попробовать по другому.потому что в оригинальной задаче(а там куча объектов, прогрессбары и т.д) это не проходит. попробую переформулировать задачу ближе к оригинальной задаче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 19:58 |
|
||
|
QT как из другого потока изменить свойство объекта формы?
|
|||
|---|---|---|---|
|
#18+
Картежник, вообщем вот. кусок кода. удаляет файлы из списка list.xml. удаление работает, прогрессбары двигаются, но программа не реагирует на мои клики по другим элементам формы. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 20:09 |
|
||
|
QT как из другого потока изменить свойство объекта формы?
|
|||
|---|---|---|---|
|
#18+
Картежник, По правильному все долгие задачи должны запускаться не в потоке интерфейса, а в отдельном. А если по простому, то надо вставить QApplication::processEvents() на каждую итерацию цикла в потоке интерфейса. Хотя может у вас там сложный и неправильный вариант: отдельный поток запускается, а поток интерфейса блокируется ожиданием его завершения. Тогда всё грустно и надо переделывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 20:49 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2018533]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
8ms |
get first new msg: |
12ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 169ms |

| 0 / 0 |
