为什么我在这段代码中无法正确获得控件NewlyScrollArea的尺寸class NewlyScrollArea(QLabel): def __init__(self, parent=None): super(NewlyScrollArea, self).__init__(parent) self.parent = parent self.x_max, self.y_max = (int(self.width()), int(self.height())) self.setPixmap(QPixmap("ui/hl.png")) self.scroll_sidebar = DraggableLabel(self) self.scroll_sidebar.setGeometry(self.x_max - 6, 0, 6, 32) self.scroll_sidebar.setPixmap(QPixmap("ui/components/slidebar/slider.png")) print(self.geometry())
时间: 2024-03-10 07:48:22 浏览: 104
在 `__init__` 方法中获取控件尺寸时,控件尚未完成布局和绘制,因此获取的结果可能不是你所期望的。可以考虑将尺寸的获取放在控件实例化后的某个时间点,例如使用 `showEvent` 事件。
示例代码如下:
```
class NewlyScrollArea(QLabel):
def __init__(self, parent=None):
super(NewlyScrollArea, self).__init__(parent)
self.parent = parent
self.setPixmap(QPixmap("ui/hl.png"))
self.scroll_sidebar = DraggableLabel(self)
self.scroll_sidebar.setGeometry(self.width() - 6, 0, 6, 32)
self.scroll_sidebar.setPixmap(QPixmap("ui/components/slidebar/slider.png"))
def showEvent(self, event):
super(NewlyScrollArea, self).showEvent(event)
self.x_max, self.y_max = (int(self.width()), int(self.height()))
print(self.geometry())
```
在这个例子中,我们使用 `showEvent` 方法来获取控件的尺寸。当控件显示时,`showEvent` 方法将被调用,并在其中获取控件的尺寸。
阅读全文