qt5(和python) - 如何获取用户操作系统的默认缩略图大小

B B*_*B B 5 python qt pyqt thumbnails pyside

我希望创建一个图像浏览器,在本机外观文件浏览器上显示漂亮均匀的平铺缩略图.

在Windows上,我希望它看起来像这样:

在此输入图像描述

在ubuntu上,我希望它看起来与此类似:

在此输入图像描述

但这就是现在可用的:

缩放尺寸与默认尺寸不同

我面临的一个问题涉及为图像指定正确的缩略图大小.我知道我可以使用代码以编程方式设置缩略图大小self.setIconSize(QSize(32, 32)),但是,以这种方式设置缩略图大小可能会导致大小与系统默认值不一致,使其看起来不自然.

所以我的问题是:如何获得在用户桌面上设置的"默认缩略图大小",使我的缩略图外观与用户的操作系统一致(使用qt5或更具体的PySide2或PyQt5)?

这是我到目前为止使用的代码:`

import sys
from PySide2.QtCore import QSize
from PySide2.QtGui import QIcon
from PySide2.QtWidgets import QApplication, QListWidget, QListWidgetItem, QMainWindow

class ThumbsWindow(QListWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.initUI()

    def initUI(self):
        self.setViewMode(QListWidget.IconMode)
        self.setIconSize(QSize(32, 32))

        myimage_path = "./images/web.png"
        myimage_path1 = "./images/image1.jpg"
        myimage_path2 = "./images/image2.jpg"
        myimage_path3 = "./images/image3.jpg"

        image_list = [myimage_path, myimage_path1, myimage_path2, myimage_path3]
        # create a list of QIcons
        image_items = [QListWidgetItem(QIcon(path_x), "sample image") for path_x in image_list]

        # add each of the QIcons onto the QListWidget
        for image_item in image_items:
            self.addItem(image_item)


class Example(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        t = ThumbsWindow()
        self.setCentralWidget(t)

        self.resize(400, 300)
        self.setWindowTitle('Image Thumbnails')
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)

`

Mal*_*oix 1

我知道我回答这个问题可能有点晚了,但我相信您正在从错误的角度看待这个问题。
正如其他人所说,从技术上讲,图像缩略图没有“系统默认”大小。缩略图显示在文件管理器程序(Windows 资源管理器、Nautilus 等)上,这决定了缩略图的大小。不是系统。

上述两个程序都使用户能够调整缩略图的大小,因此即使有默认的系统设置,用户首选的大小也不会是通用的。

您可能想要做的是打开 GUI 旁边的默认文件管理器并比较图标大小。如果您的文件管理器小于默认的文件管理器,请调整代码中的图标大小(按照上面发布的方式)并再次比较。当它们看起来足够接近适合您的相同尺寸时,这就是您的默认尺寸。如果你想给用户调整大小的选项,添加选项来调整它,然后将新的大小保存为应用程序启动时初始化的图标大小,允许用户选择自己的默认大小。

除此之外,我不相信有办法从默认文件管理器中提取图标大小。