【发布时间】:2018-07-16 00:08:29
【问题描述】:
我正在尝试为我的 Python 项目设置一个变量文件。 我有一个运行良好的函数:
def resize_window(self):
size_object = QDesktopWidget().screenGeometry(-1) # active screen
screen_width = size_object.width()
screen_height = size_object.height()
但是,当我尝试将其设置在单独的文件中以进行调用时,出现错误。
AttributeError: type object 'ScreenSize' 没有属性 'screen_width'
这是我的单独文件的外观:
class ScreenSize(object):
def __init__(self, screen_width, screen_height):
self.screen_width = screen_width
self.screen_height = screen_height
self.resize_window()
def resize_window(self):
size_object = QDesktopWidget().screenGeometry(-1) # active screen
screen_width = size_object.width()
screen_height = size_object.height()
电话:
self.frame_top.setMinimumSize(QtCore.QSize(3/4* ScreenSize.screen_width, 1/10*ScreenSize.screen_height))
self.frame_top.setMaximumSize(QtCore.QSize(3/4*ScreenSize.screen_width, 1/10*ScreenSize.screen_height))
错误是:AttributeError: type object 'ScreenSize' has no attribute 'screen_width'
如果我只用这个设置课程:
class ScreenSize(object):
screen_width = 500
screen_height = 300
它有效。所以我的问题是从类中调用该函数。 提前感谢您的帮助。
【问题讨论】:
-
缩进看起来不正确,令人困惑。
-
一个类与该类的实例不同。您在实例
self上设置属性,所以ScreenSize类当然没有它们。那就是您做错了,但是问题中没有足够的信息来告诉您如何正确地做。您实际上不必为了分隔文件而将内容放入类中。 -
尝试使用
self.screen_width。将self.用于class的所有变量。
标签: python function class attributes pyqt5