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

我有 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, ""))

但是图像非常小。

http://img.mukewang.com/60f7d7620001c2af08170355.jpg

我试图使用 QSize、QPixmap 等,但没有任何成功,大小仍然相同。我怎样才能使这个上一个图像更大?


泛舟湖上清波郎朗
浏览 268回答 1
1回答

拉莫斯之舞

一个简单的解决方案是建立一个委托,其中QTableWidget使用以下setItemDelegateForColumn()方法调整图标大小和设置:from PySide import QtCore, QtGuiclass 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_())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python