问题描述
我正在尝试使用 pyqt5 制作 gui。当我在 __slots__
下没有 varaibales 时,代码工作正常,但是一旦我将它们放入,我就会收到一条错误消息
"(内建函数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
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)