Можно ли остановить таймер
QTimer.singleShot()
? (Пожалуйста, не говорите мне использоватьstop()
функциюQTimer
объекта - Я действительно хочу знать, если статическая функцияQTimer.singleShot()
может быть остановлена до его время истекло)Остановить таймер QTimer.singleShot()Что произойдет, если второй
QTimer.singleShot()
запускается до первого ? Первый убит или второй - ?
1
A
ответ
0
В. Что произойдет, если второй QTimer.singleShot() запускается до первый один прошло? Первый убит или второй - ?
- Все таймеры работают независимо друг от друга, так что если два запускаются последовательно, и будет работать до завершения.
Q. Можно ли остановить таймер QTimer.singleShot()? (Пожалуйста, не говорите мне использовать функцию останова() объекта QTimer - Я действительно хочу знать, если статическая функция QTimer.singleShot() может быть остановлен до его время истекло)
Статическая функция создает внутренний объект, который обрабатывает таймер, поэтому для его остановки нет открытого API. Однако есть взлом с участием
QAbstractEventDispatcher
, который может обойти это ограничение. Он опирается на детали реализации, поэтому не рекомендуется, чтобы это использовалось в производственном коде. Но вы спросили, было ли это возможно, так вот демо:from PyQt4 import QtCore, QtGui class Window(QtGui.QWidget): def __init__(self): super(Window, self).__init__() self.button = QtGui.QPushButton('Start', self) self.button.clicked.connect(self.handleTimer) self.edit = QtGui.QLineEdit(self) self.edit.setReadOnly(True) layout = QtGui.QVBoxLayout(self) layout.addWidget(self.button) layout.addWidget(self.edit) self._timer = None def handleTimer(self): dispatcher = QtCore.QAbstractEventDispatcher.instance() if self._timer is None: self.edit.clear() self.button.setText('Stop') QtCore.QTimer.singleShot(3000, self.handleTimeout) self._timer = dispatcher.children()[-1] else: dispatcher = QtCore.QAbstractEventDispatcher.instance() dispatcher.unregisterTimers(self._timer) self.button.setText('Start') self._timer = None def handleTimeout(self): self._timer = None self.button.setText('Start') self.edit.setText('timeout') if __name__ == '__main__': import sys app = QtGui.QApplication(sys.argv) window = Window() window.setGeometry(500, 150, 300, 100) window.show() sys.exit(app.exec_())
Смежные вопросы
- 1. Невозможно остановить Таймер AS3
- 2. Остановить таймер фрагмента onCloseActivity
- 3. Как остановить таймер?
- 4. Как остановить таймер Android
- 5. Как остановить таймер linux?
- 6. Невозможно остановить этот таймер
- 7. Остановить таймер при зависании
- 8. Как остановить таймер поворота?
- 9. Остановить таймер кнопкой
- 10. Включить, чтобы остановить таймер
- 11. Как остановить таймер
- 12. Как остановить таймер
- 13. Как остановить таймер?
- 14. QTimer.singleShot ожидается 'QTimer', получил 'int'
- 15. Как остановить таймер в java
- 16. Остановить таймер, если форма активна
- 17. Как остановить таймер при отладке
- 18. VB.NET Остановить таймер по таймеру
- 19. Остановить таймер при запуске цели
- 20. Как остановить таймер в android
- 21. ява остановить таймер в задаче
- 22. Остановить таймер с другой страницы
- 23. C# - Как остановить таймер Непосредственно
- 24. Как остановить таймер качания java
- 25. Как остановить таймер от UIButton?
- 26. Невозможно остановить таймер в C#
- 27. Остановить таймер в событии onDisconnect()
- 28. Как остановить таймер в iphone?
- 29. Как остановить таймер, запускаемый runloop?
- 30. Как остановить таймер в java
Вы [Герт Vancompernolle] (http://www.riverbankcomputing.com/pipermail/pyqt/2009-February/ 022023.html), и я требую свои 5 евро. – ekhumoro
Возможный дубликат [Как я могу убить один выстрел QtCore.QTimer в PyQt4?] (Http://stackoverflow.com/questions/21079941/how-can-i-kill-a-single-shot-qtcore-qtimer- in-pyqt4) –
@three_pineapples. Это не дает окончательного ответа на вопрос об остановке таймеров с одним выстрелом, которые начали использовать статическую функцию. – ekhumoro