【问题标题】:How to change QListWidget setText position to top?如何将 QListWidget setText 位置更改为顶部?
【发布时间】:2023-03-30 05:20:01
【问题描述】:

我正在尝试将我的 QListWidget 文本标题更改为不同的位置,从图片的右侧到顶部:

现在看起来像:

我想要这样的东西:

我的代码:

video_thumbnail.setFlow(QListView.LeftToRight)

for i in range(30):
    it = QListWidgetItem()
    it.setIcon(QIcon('test3.png'))
    it.setText(str(i))
    video_thumbnail.addItem(it)
video_thumbnail.setIconSize(QSize(128, 128))

【问题讨论】:

    标签: python pyqt5 qlistwidget


    【解决方案1】:

    您可以使用委托来修改图标和文本的位置:

    import sys
    
    from PyQt5.QtCore import QSize, Qt
    from PyQt5.QtGui import QIcon
    from PyQt5.QtWidgets import (
        QApplication,
        QListView,
        QListWidget,
        QListWidgetItem,
        QStyledItemDelegate,
        QStyleOptionViewItem,
    )
    
    
    class StyledItemDelegate(QStyledItemDelegate):
        def initStyleOption(self, option, index):
            super().initStyleOption(option, index)
            option.displayAlignment = Qt.AlignCenter
            option.decorationPosition = QStyleOptionViewItem.Bottom
    
    
    def main():
        app = QApplication(sys.argv)
    
        video_thumbnail = QListWidget(flow=QListView.LeftToRight)
        video_thumbnail.setIconSize(QSize(128, 128))
        delegate = StyledItemDelegate(video_thumbnail)
        video_thumbnail.setItemDelegate(delegate)
    
        for i in range(30):
            it = QListWidgetItem()
            it.setIcon(QIcon("test3.png"))
            it.setText(str(i))
            video_thumbnail.addItem(it)
        video_thumbnail.resize(400, 100)
        video_thumbnail.show()
    
        sys.exit(app.exec_())
    
    
    if __name__ == "__main__":
        main()
    

    【讨论】:

    • 谢谢,为什么图片无法加载? :(
    • @Nikki 我正在使用您提供的代码并且我没有修改加载 QIcon 的代码,请尝试使用 .png 的完整路径
    猜你喜欢
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2011-10-21
    相关资源
    最近更新 更多