主文件PyQt4中的外部功能

我非常努力地使此代码起作用。我尝试使用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;"))


PIPIONE
浏览 144回答 2
2回答

白衣染霜花

您从不调用函数reading()吗?那么为什么要去那里呢?我不确定您要实现什么目标,但是您可以尝试:def __init__(self, parent=None):    QtGui.QWidget.__init__(self, parent)    self.ui = Ui_MainWindow()    self.ui.setupUi(self)    self.reading() ####################但这只会调用一次函数。您什么时候reading()要执行?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python