AttributeError: 'QMainWindow' object has no attribute 'setDesktopSettingsAware'删了还是宝座
时间: 2024-08-15 11:02:16 浏览: 41
AttributeError: ‘NoneType’ object has no attribute ‘children’ 错误
5星 · 资源好评率100%
删除`setDesktopSettingsAware(True)`这一行是正确的处理方式,因为你已经通过`setFixedSize()`设置了窗口的初始大小,这意味着你并不需要让窗口根据桌面设置动态调整。如果删除了这一行,窗口大小将保持固定,不会随着系统的变化而改变。
然而,如果你希望程序能够在不同屏幕分辨率下有良好的显示效果,可以在主窗口初始化时添加对屏幕分辨率检测和调整窗口大小的部分。你可以使用`QScreen`和`QSize`等PyQt5提供的工具来动态获取当前屏幕信息,并据此调整窗口大小。
例如,你可以这样做(在`setupUi`函数内):
```python
screens = QtWidgets.QApplication.screens()
primary_screen = screens
screen_size = primary_screen.availableGeometry().size()
# 然后基于屏幕尺寸调整窗口大小
MainWindow.resize(screen_size.width(), screen_size.height())
```
这样在大部分情况下可以保证窗口与屏幕大小相适应。
阅读全文