Python と Qt でアプリケーションを開発していますが、明確にしたいことがあります。次のコード例を見てください。
import serial
from PySide.QtGui import QMainWindow
from PySide import QtCore, QtGui
from PySide.QtCore import QTimer
from ZumaUI import Ui_MainWindow
class MainWindow(QMainWindow, Ui_MainWindow):
'''
MainWindow: this is the class that manages all the functionality.
'''
def __init__(self, parent = None):
'''
Default Constructor. It can receive a top window as parent.
'''
QMainWindow.__init__(self, parent)
self.setupUi(self)
self.serial = serial.Serial()
self.serial.port = 'COM1'
self.serial.baudrate = 19200
self.serial.timeout = 0.5 #make sure that the alive event can be checked from time to time
self.on_PortSettings()
self.timer = QTimer(self)
self.timer.timeout.connect(self.OnRefresh)
self.timer.start(150)
self.on_PortSettings()
def OnRefresh(self):
pass
def on_PortSettings(self):
self.serial.close()
self.timer.stop()
コードを実行すると、
"AttributeError: 'MainWindow' object has no attribute 'timer'"
self.serial
しかし、クラス内で呼び出されるこの種のエラーはありません。これら 2 つのインスタンスの違いとtimer
、クラス全体でアクセスできるように呼び出す方法を教えてください。