PySide:如何放大QTableWidget中的图像?

2024-01-10

我在使用 PySide QTableWidget 时遇到问题。我需要在所有行的第一列中添加图像预览。我正在尝试使用 QIcon 添加此内容:

library_table.insertRow(index)
library_table.setItem(index, 1, QTableWidgetItem(file))
image = QIcon(self.sub_ad + file)
library_table.setItem(index, 0, QTableWidgetItem(image, ""))

但图像很小。

我尝试使用 QSize、QPixmap 等,但没有成功,大小仍然相同。我怎样才能把这张以前的图片变大?


一个简单的解决方案是建立一个委托,在其中调整图标大小并在QTableWidget使用setItemDelegateForColumn() method:

from PySide import QtCore, QtGui


class IconDelegate(QtGui.QStyledItemDelegate):
    def initStyleOption(self, option, index):
        super(IconDelegate, self).initStyleOption(option, index)
        option.decorationSize = option.rect.size()


class MainWindow(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        table_widget = QtGui.QTableWidget()
        self.setCentralWidget(table_widget)
        table_widget.setColumnCount(2)

        table_widget.verticalHeader().setDefaultSectionSize(80)

        for index, file in enumerate(("clear.png", "butterfly.png")):
            table_widget.insertRow(table_widget.rowCount())
            item1 = QtGui.QTableWidgetItem(QtGui.QIcon(file), "")
            item2 = QtGui.QTableWidgetItem(file)
            table_widget.setItem(index, 0, item1)
            table_widget.setItem(index, 1, item2)

        delegate = IconDelegate(table_widget)
        table_widget.setItemDelegateForColumn(0, delegate)


if __name__ == '__main__':
    import sys

    app = QtGui.QApplication(sys.argv)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PySide:如何放大QTableWidget中的图像? 的相关文章

随机推荐

  • 如何降级 jekyll 以使用 github 页面?

    我认为我的主要问题是 github 页面不支持 jekyll 4 这对我来说没问题 但是无论如何我如何降级 jekyll 才能工作呢 我尝试按照此处的说明进行操作 https github com github pages gem issu
  • 日志记录是否应该受到国际化的影响?

    我们目前正在考虑将我们的系列产品运送到世界其他地区 我们将确保用户界面中的所有字符串和日期格式等反映目标国家 地区的语言和文化 我们的日志文件和错误报告也应该这样改变吗 考虑到客户可能会查阅日志文件 或者我们可能在该国家 地区设有本地支持团
  • 在 Angular ui Bootstrap 中控制 isOpen

    我想在 angualr ui bootstrap 手风琴指令中使用 isOpen 属性 这样它将打开手风琴中第一个 ng repeat 的第一个元素 我尝试过一些事情但没有运气 谁能就此提出建议吗 html div class accord
  • 尝试使用 mongodb 插件在 grails 中创建 mongodb 集合

    我正在尝试使用以下方法在 grails 中创建 mongodb 集合 BasicDBObject DBoptions new BasicDBObject DBCollection collection db createCollection
  • 为什么 sublime 不使用选择器自动检测这个自定义 sublime-build ?

    我已将以下内容保存到node sass sublime build在我的用户文件夹中 shell cmd node sass cmd file selector source scss 我有一个slideEditor scss文件 如果我明
  • 如何使用 lambda 过滤具有第二级列表中对象的属性的列表?

    例如 有两个类 class Team List
  • jQuery - 使用发布数据重定向

    如何使用发布数据进行重定向 如何移动到新页面 POST 这个怎么做 它是如何完成的以及为什么要这样做 有一个 JQuery 插件几乎可以完成您想要做的事情 https github com mgalante jquery redirect
  • 检查动画是否在 cocos2d-x 中运行

    我目前正在学习cocos2D x并正在做一些精灵动画 我的目标是 当单击按钮时 对象会向左移动并带有一些动画 现在 如果您快速单击多次 动画就会立即发生 看起来熊正在希望而不是行走 解决方案看起来很简单 我应该检查动画是否已经在运行以及是否
  • 避免 AVX-SSE (VEX) 转换惩罚

    我们的 64 位应用程序有大量代码 尤其是在标准库中 在 SSE 模式下使用 xmm0 xmm7 寄存器 我想使用 ymm 寄存器实现快速内存复制 我无法修改所有使用xmm寄存器添加VEX前缀的代码 而且我也认为这不切实际 因为它会增加代码
  • 我可以在 Android 应用程序中嵌入自定义字体吗?

    我希望有一个应用程序包含用于渲染文本的自定义字体 加载它 然后将其与 StaticText 等标准元素一起使用 这可能吗 是的 可以 只是不能将其定义到 xml 布局中 您每次都需要动态地使用它 查看本教程 http www barebon
  • 使用 Mvvm-light(oobe)+MEF 进行 Silverlight 导航?

    在用户控件 页面之间导航的最佳方法是什么 浏览器体验之外 我对 Silverlight 相当陌生 甚至对 mvvm 模式也比较陌生 导航框架与 MVVM Light Toolkit 的集成程度如何 两者的一般应用程序流程控制的片段会很棒 该
  • 在包含 UTF-8 数据的字节数组中查找最近的安全分割

    我想分割一个大的UTF 8编码数据数组 以便可以并行地将其解码为字符 好像没办法知道有多少字节Encoding GetCharCount读 我也无法使用GetByteCount GetChars 因为它无论如何都会解码整个数组 这是我试图避
  • 获取Word文档的页数

    我正在使用自动化对 Word 文档进行大量更改 然后运行 VBA 宏 该宏除其他外还检查文档是否不超过一定数量的页面 我在用着ActiveDocument Information wdNumberOfPagesInDocument 获取页数
  • VSTS 构建失败,Git 获取失败,退出代码:128

    我在 VSTS 上设置了构建代理和构建过程 所有配置都正常 但构建在获取源步骤时失败 这是我尝试过的 检查权限 由于我的个人资料是该项目的所有者 所以我这样做 未在角色中指定权限 我尝试将 PAT 的范围更改为 ALL 范围但我没有运气 升
  • AngularJS 中每次 url 变化时会调用哪个函数?

    我必须对同时发生的所有请求进行排队 而无需等待 AngularJS 中前一个请求的响应 我有一个加载函数 每次更改 url 路由时都会显示加载 div 但在该函数中创建队列数组是不行的 谁能告诉我每次更改 url 路由时在 angularj
  • Gradle 和插件更新在 Android Studio 中出现错误

    我刚刚将 Android Studio 从 2 1 更新到 3 1 旧版本的 Gradle 运行良好 但速度缓慢 因为它与新版本的 Android Studio 不兼容 我使用以下选定的答案更新了 Gradle 至 4 4 和插件 至 3
  • java - 来自另一个目录的类的初始包

    我有一些问题如何从另一个目录的类文件初始化包 File file new File D java myproject Name pack time MyClass class URL cp new File file getParent t
  • 如何在visionOS中旋转ModelEntity?

    当将模型加载为 Model3D 对象时 您可以添加手势修改器 如下所示 Model3D named model name bundle realityKitContentBundle model in model resizable asp
  • Ionic 2:无法调试在Android设备上运行的应用程序

    重现步骤 1 创建新项目https github com driftyco ionic starter super https github com driftyco ionic starter super2 运行 ionic run an
  • PySide:如何放大QTableWidget中的图像?

    我在使用 PySide QTableWidget 时遇到问题 我需要在所有行的第一列中添加图像预览 我正在尝试使用 QIcon 添加此内容 library table insertRow index library table setIte