gpt4 book ai didi

qt - 将 QWidget 添加到 QListWidget

转载 作者:行者123 更新时间:2023-12-04 00:44:15 48 4
gpt4 key购买 nike

我正在尝试制作一个 QListWidget,其中每个项目都是一个包含文本和按钮的简单小部件。我使用以下内容:

itemN = QtGui.QListWidgetItem() 
#Create widget
widget = QtGui.QWidget()
widgetText = QtGui.QLabel("I love PyQt!")
widgetButton = QtGui.QPushButton("Push Me")
widgetLayout = QtGui.QHBoxLayout()
widgetLayout.addWidget(widgetText)
widgetLayout.addWidget(widgetButton)
widgetLayout.addStretch()
widget.setLayout(widgetLayout)
#Add widget to QListWidget funList
funList.addItem(itemN)
funList.setItemWidget(itemN, widget)

问题是,什么都没有出现。我得到一个可以使用键盘导航的空白行,但它是空白的。当小部件只包含一个按钮时,它就可以工作,所以好像按钮本身就不会把事情搞砸。 setItemWidget 对小部件的复杂性有限制吗?可以处理?也许我需要超越便利类(class),正如下面一些相关帖子中所建议的那样?

相关帖子

pyqt adding a widget to a QListWidget
请注意,上一篇文章的标题与我的相似,但似乎是一个关于来自 QtDesigner 的复杂代码(与一些自定义内容混合)的表达相对较差的问题。根本不清楚这实际上是这个人应该问的问题。虽然标题使它看起来像重复,但问题(我祈祷)不是。

我会对 this 说类似的话邮政。

QListWidgetItem with Radio Button

QListView/QListWidget with custom items and custom item widgets

Adding Custom Widget to QListWidget in QT click issue in QT?

pyqt adding a widget to a QListWidget

http://www.qtcentre.org/threads/8660-Drawing-a-widget-in-QItemDelegate-s-paint-method

http://developer.nokia.com/community/discussion/showthread.php/211634-Adding-a-button-inside-QListWidgetItem

最佳答案

试试这个:

itemN = QtGui.QListWidgetItem() 
#Create widget
widget = QtGui.QWidget()
widgetText = QtGui.QLabel("I love PyQt!")
widgetButton = QtGui.QPushButton("Push Me")
widgetLayout = QtGui.QHBoxLayout()
widgetLayout.addWidget(widgetText)
widgetLayout.addWidget(widgetButton)
widgetLayout.addStretch()

widgetLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
widget.setLayout(widgetLayout)
itemN.setSizeHint(widget.sizeHint())

#Add widget to QListWidget funList
funList.addItem(itemN)
funList.setItemWidget(itemN, widget)

如您所见,您需要 setSizeConstraint到布局和 setSizeHint到项目。

关于qt - 将 QWidget 添加到 QListWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26199374/

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