为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

泛舟湖上清波郎朗 2021-07-08 18:32:58
我有 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 等,但没有任何成功,大小仍然相同。我怎样才能使这个上一个图像更大?
查看完整描述

1 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

一个简单的解决方案是建立一个委托,其中QTableWidget使用以下setItemDelegateForColumn()方法调整图标大小和设置:


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

查看完整回答
反对 回复 2021-07-21
  • 1 回答
  • 0 关注
  • 267 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信