我非常努力地使此代码起作用。我尝试使用Qtimer,proccesEvents,但没有想要的结果。GUI启动,因此可以正常工作,但是没有任何更改,因此read()方法不起作用。
我在stackoverflow上进行了大量搜索以寻求帮助,但找不到。也许我没有能力。
这是代码:
import RPi.GPIO as GPIO
import MFRC522
import signal
import time
from PyQt4 import QtCore, QtGui
from ui_mainwindow import Ui_MainWindow
class MainWindow(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
def reading(self):
self.ui.processEvents()
### Event Functions ###
continue_reading = True
# Hook the SIGINT
signal.signal(signal.SIGINT, end_read)
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
# This loop keeps checking for chips. If one is near it will get the UID and authenticate
while continue_reading:
# Scan for cards
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
# Get the UID of the card
(status,uid) = MIFAREReader.MFRC522_Anticoll()
# If we have the UID, continue
if status == MIFAREReader.MI_OK:
# This is the default key for authentication
key = [0xFF,0xFF,0xFF,0xFF,0xFF,0xFF]
# Select the scanned tag
MIFAREReader.MFRC522_SelectTag(uid)
# Authenticate
status = MIFAREReader.MFRC522_Auth(MIFAREReader.PICC_AUTHENT1A, 8, key, uid)
# Check if authenticated
if status == MIFAREReader.MI_OK:
MIFAREReader.MFRC522_Read(8)
self.ui.label_3.show()
self.ui.label_2.show()
self.ui.label_4.show()
self.ui.groupBox.setStyleSheet(_fromUtf8("background: white;\n"
"border-style: solid;\n"
"border-width: 1px;\n"
"border-radius: 20px;"))
白衣染霜花
相关分类