У меня есть код Python с некоторым циклом while внутри, но я не знаю, как заставить его работать с моим GUI PyQt - я могу запускать только Qt-окно или этот цикл (но тогда окна не отображаются). Есть ли какие-либо решения? Я читал о некоторых QThreads или QTimers, но я не знаю, как его использовать.PyQt - запуск цикла внутри GUI
4
A
ответ
4
Существует вопрос, который очень похож на ваш, Background thread with QThread in PyQt. В ответе есть 3 уникальных метода использования qthread
.
Этот учебник может быть очень полезным, http://joplaete.wordpress.com/2010/07/21/threading-with-pyqt4/
Здесь также очень хороший пример:
import sys
import urllib2
from PyQt4 import QtCore, QtGui
class DownloadThread(QtCore.QThread):
def __init__(self, url, list_widget):
QtCore.QThread.__init__(self)
self.url = url
self.list_widget = list_widget
def run(self):
info = urllib2.urlopen(self.url).info()
self.list_widget.addItem('%s\n%s' % (self.url, info))
class MainWindow(QtGui.QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.list_widget = QtGui.QListWidget()
self.button = QtGui.QPushButton("Start")
self.button.clicked.connect(self.start_download)
layout = QtGui.QVBoxLayout()
layout.addWidget(self.button)
layout.addWidget(self.list_widget)
self.setLayout(layout)
def start_download(self):
urls = ['http://google.com', 'http://twitter.com', 'http://yandex.ru',
'https://stackoverflow.com/', 'http://www.youtube.com/']
self.threads = []
for url in urls:
downloader = DownloadThread(url, self.list_widget)
self.threads.append(downloader)
downloader.start()
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.resize(640, 480)
window.show()
sys.exit(app.exec_())
Смежные вопросы
- 1. Запуск внешнего exe внутри GUI Python (PyQt)
- 2. PyQt update gui
- 3. PyQt GUI порядок операций
- 4. PyQT GUI Testing
- 5. Python GUI PyQt
- 6. PyQt, QThread, GIL, GUI
- 7. Запуск mysql внутри цикла while
- 8. Вызов GUI для ввода ввода внутри цикла цикла Matlab
- 9. PyQT GUI, Lineedit, Игра MasterMind
- 10. Как использовать PyQt без GUI?
- 11. Выполнить код Python из цикла событий PyQt
- 12. Как использовать терминал, встроенный в GUI PyQt
- 13. Запуск NSTask внутри цикла в Objective-C
- 14. Запуск скрипта внутри цикла - имена файлов эха
- 15. Запуск нескольких тегов-транспортиров внутри цикла
- 16. автоматический запуск программы GUI на startx
- 17. Обработка событий мыши opencv gui vs pyqt
- 18. Запуск классов из Java GUI
- 19. Запуск цикла
- 20. Запуск IDLE (Python GUI)
- 21. Запуск цикла снаружи onStart
- 22. Запуск GUI GUI без консольного окна
- 23. Терминал внутри приложения GUI GUI
- 24. Почему python Subprocess.stdin.write() убивает PyQt Gui
- 25. Сочетание приложения PyQt Gui с проектом Django
- 26. pyqt gui, передающий аргумент функции python
- 27. Интеграция скручена в существующее приложение GUI pyqt
- 28. Как организовать GUI-код (для PyQt)?
- 29. Как прервать QThread из PyQt GUI?
- 30. PyQt GUI на основе CRUD-приложения
Вы должны опубликовать свой код и ваши петли. – enginefree