对于setFixedSize,QWidget不接受大于约23000的值

2024-06-16 09:46:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我猜,当计算机内存不足时,该代码会毫无错误地退出;它需要大约2吉比特的内存,我的笔记本电脑有6吉比特;对于QWidget的fixedSize,它仅适用于23000或更小的值。如何创建一个宽度和高度为1000000的QWidget,而不消耗这么多ram

from PySide2.QtWidgets import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setFixedSize(1000000, 1000000)

def main():
    app = QApplication(sys.argv)
    w = Window()
    w.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

编辑:
我来自WPF/C#world,在那里有一个大尺寸的画布是可能的,没有任何问题或ram短缺。例如,一个地图的宽度和高度为30000,那么在一些实现中,可以超快速放大和缩小以获得良好的整体视图,而不需要像Qt这样高的ram消耗(在WPF中,我的最后一个应用程序中有很多项目,它需要大约21兆字节的ram,画布的宽度和高度都有100万像素;大小并不重要)。通过增加QWidget的大小,ram消耗会更高,这让人惊讶

我对Qt还不熟悉,到目前为止我所了解的是,要有一个具有缩放功能的大地图,我们需要使用场景和视图。因此,这是可行的,但与WPF不同


Tags: importselfapp宽度高度initmaindef