Я создаю будильник в python, используя PyQt4, и в этом я использую виджет ЖК-дисплея, отображающий текущее время обновления. Для этого я использую threading. Но я новичок в этом, поэтому проблема заключается в том, что я не знаю, как отлаживать эту вещь.Действительно ли моя резьба? если да, то почему код не работает?
Это мой код
import sys
from PyQt4 import QtGui, uic
import time
import os
from threading import Thread
class MyWindow(QtGui.QMainWindow):
def __init__(self):
super(MyWindow, self).__init__()
uic.loadUi('AlarmClock_UI.ui', self)
self.show()
self.comboBox.setCurrentIndex(0)
self.comboBox.currentIndexChanged.connect(self.getSelection)
self.lineEdit.setText('Please select the reminder type')
timeThread = Thread(target = self.showTime())
timeThread.start()
def getSelection(self):
if self.comboBox.currentIndex() == 1:
self.lineEdit.setText('Select the alarm time of your choice')
elif self.comboBox.currentIndex() == 2:
self.lineEdit.setText('Use those dials to adjust hour and minutes')
else:
self.lineEdit.setText('Please select the reminder type')
def showTime(self):
showTime = time.strftime('%H:%M:%S')
self.lcdNumber.display(showTime)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
window = MyWindow()
sys.exit(app.exec_())
Я пытался в то время как цикл в showTime()
функции, то она даже не загружается графический интерфейс просто работает в фоновом режиме. Спасибо :)
Напечатайте здесь свой код и отступьте его на 4 пробела (или выберите все и нажмите Ctrl + k). Не размещайте ссылку на нее. – Harrison
Это нехорошее использование потоков. Виджет qt должен быть обновлен в событии qt в основном потоке. Погрузите свою нить полностью и вместо этого используйте QTimer. – tdelaney