gpt4 book ai didi

qt - 带有自定义项目和自定义项目小部件的 QListView/QListWidget

转载 作者:行者123 更新时间:2023-12-03 08:56:37 27 4
gpt4 key购买 nike

我正在编写一个 PyQt 应用程序,但在创建自定义 ListView 时遇到了一些麻烦。我希望列表包含任意小部件(特别是一个自定义小部件)。我该怎么办?

似乎另一种方法是创建一个包含在滚动条中的表格或 GridView 。但是,我希望能够利用模型/ View 方法以及嵌套( TreeView )支持内置句柄。

澄清一下,自定义小部件是交互式的(包含按钮),因此解决方案需要的不仅仅是绘制小部件。

最佳答案

如果我正确理解你的问题,你想要这样的东西:

enter image description here

其中每一行包含一组自定义小部件。

要实现这一点,需要两个步骤。

使用自定义小部件实现行

首先,实现一个自定义小部件,其中包含每个列表行所需的所有小部件。

在这里,我使用一个标签和每行两个按钮,采用水平布局。

class MyCustomWidget(QWidget):
def __init__(self, name, parent=None):
super(MyCustomWidget, self).__init__(parent)

self.row = QHBoxLayout()

self.row.addWidget(QLabel(name))
self.row.addWidget(QPushButton("view"))
self.row.addWidget(QPushButton("select"))

self.setLayout(self.row)

将行添加到列表

然后,实例化多行只需创建一个小部件项目,并将自定义小部件与该项目的行相关联。
# Create the list
mylist = QListWidget()

# Add to list a new item (item is simply an entry in your list)
item = QListWidgetItem(mylist)
mylist.addItem(item)

# Instanciate a custom widget
row = MyCustomWidget()
item.setSizeHint(row.minimumSizeHint())

# Associate the custom widget to the list entry
mylist.setItemWidget(item, row)

关于qt - 带有自定义项目和自定义项目小部件的 QListView/QListWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/948444/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com