【问题标题】:qt5 (and python) - How to get the default thumbnail size of user's osqt5(和python)-如何获取用户操作系统的默认缩略图大小
【发布时间】:2017-01-30 14:46:22
【问题描述】:

我希望创建一个图像浏览器,该浏览器可以在具有本机外观的文件浏览器上很好地均匀地显示平铺缩略图。

在 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_())

`

【问题讨论】:

  • 是什么让您认为存在默认系统大小?在你的问题中,我没有看到任何证据。无论如何,你为什么不能让用户自己选择尺寸(这可能是所有其他应用程序所做的)?
  • 一个例子是 ubuntu 用户,当打开他的“图片”文件夹时,会遇到该文件夹​​中任何图片的缩略图版本。他会看到这些缩略图的统一默认大小。在显示文件夹的缩略图内容之前,Ubuntu 不会弹出一个对话框,要求用户输入他想要的缩略图大小。 windows用户也一样。 Windows 用户会看到具有统一默认大小的缩略图,即使没有先要求用户指定他想要的缩略图大小。
  • 但这并不表明存在默认的 system 大小。每个应用程序只做自己的事情。
  • 我向您推荐我的第一条评论 ;-) 也许您应该花时间验证在您希望支持的所有平台上是否存在这样的系统范围默认值 - 否则它只是一只野鹅追逐,不是吗?就个人而言,我只会:(1)选择一个尺寸,任何尺寸,(2)允许用户根据自己的喜好进行调整。
  • 感谢您抽出宝贵时间回复,但是,老实说,我不明白验证如此不言自明的事情如何有助于解决此问题。我已经提供了一个示例,我发布的图像也显示了我想要实现的目标。此外,简单的谷歌搜索术语“windows 默认缩略图大小”和“ubuntu 默认缩略图大小”显示了如何将这些操作系统的默认缩略图大小更改为其他内容,表明存在默认系统值之类的东西缩略图。我只想知道如何使用 Qt 获得该值。

标签: python qt pyqt thumbnails pyside


【解决方案1】:

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

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

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

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

【讨论】:

  • 感谢您抽出宝贵时间回复。你说得对。我最终使用了类似于您所说的解决方案。但是,我没有慢慢将图标大小与默认 GUI 进行比较,然后逐步重新调整,而是决定使用此处找到的预设值:visualpharm.com/articles/icon_sizes.html。基本上,当用户打开应用程序时,Windows 和 linux 的图标大小设置为 48 x 48。之后,用户可以根据上面链接中列举的不同大小调整图标大小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
相关资源
最近更新 更多