我正在尝试用pyqt5制作gui。当我没有将varaibales放在__slots__
下时,代码可以正常工作,但是一旦我将它们放进去,就会出现一个错误
“(内置函数connectSlotsByName)返回了一个带有错误集的结果”
在上面的错误上面写着
“'MainWindow'对象没有属性'z'”
下面是我的部分代码(有点长)。我甚至不确定__slots__
是否是个问题。因为当我从'fName'到'has_data'时,它工作得很好,但当我在'x'下添加内容时,它就开始给我这个错误
class MainWindow(QDialog):
__slots__ = (
# find_file_Callback
'fName',
'cubefilename',
'ROI',
'ROIcount',
'has_data',
'x',
'x_end',
'y',
'y_end',
'z',
'ptflag',
'rgflag',
'rgflagROI',
'intens'
)
def __init__(self):
super(MainWindow,self).__init__()
loadUi("ptype1.ui",self)
self.find_file.clicked.connect(self.find_file_Callback)
self.micrometer.setChecked(True)
self.start_cube.clicked.connect(self.start_cube_Callback)
self.fName = ""
self.cubefilename = ""
self.ROI = 0
self.ROIcount = 0
self.has_data = 0
self.x = 0
self.x_end = 0
self.y = 0
self.y_end = 0
self.z = 0
self.ptflag = False
self.rgflag = False
self.rgflagROI = False
self.intens = 0
def start_cube_Callback(self):
self.cubefilename = self.fName[0]
filename = self.cubefilename
print("Working to read datacube")
fileID = open (filename)
data = np.fromfile(fileID, dtype = np.float32)
x=int(data[0])
y=int(data[1])
z=int(data[2])
end = len(data)
imgZ = data[end-z:end]
img = data[3:x*y*z +3]
del data
img = img.reshape(z,x,y, order = 'F')
img = img.transpose(2, 1, 0)
img = np.flip(img,0)
imgX = np.arange(37.5, 75*x+37.5, 75)
imgY = np.arange(75, 150*y+75, 150)
fileID.close()
print("Working to display data\n")
scalefact = 1e3
self.x = abs((imgX-imgX[0])/scalefact)
xm, xn = 1, len(imgX)
if xm > xn:
self.x = self.x.conj().T
self.x_end = self.x[len(self.x) - 1]
self.y = abs((imgY-imgY[0])/scalefact)
ym, yn = 1, len(imgY)
if ym < yn:
self.y = self.y.conj().T
self.y_end = self.y[len(self.y) - 1]
self.z = imgZ
目前没有回答
相关问题 更多 >
编程相关推荐