eri*_*ric 12 qt qt4 pyqt pyqt4 pyside
我正在尝试制作一个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)
Run Code Online (Sandbox Code Playgroud)
问题是,什么都没有出现.我得到一个空白行,我可以使用键盘导航,但它是空白的.当小部件只包含一个按钮时,它可以正常工作,因此不仅仅是按钮就是搞乱了.setItemWidget可以处理的小部件的复杂性是否有限制?也许我需要超越便利课程,如下面一些相关帖子所示?
相关文章
pyqt将一个小部件添加到QListWidget
请注意,上一篇文章的标题与我的相似,但似乎是一个相对较差的问题,关于QtDesigner的一个复杂的代码模板(混合了一些自定义的东西).目前尚不清楚这实际上是这个人应该问的问题.虽然标题看起来像是重复,但问题(我祈祷)却不是.
我会对这篇文章说些类似的话.
带有自定义项和自定义项窗口小部件的QListView/QListWidget
在QT中的QT点击问题中将自定义窗口小部件添加到QListWidget?
http://www.qtcentre.org/threads/8660-Drawing-a-widget-in-QItemDelegate-s-paint-method
Che*_*byl 18
试试这个:
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)
Run Code Online (Sandbox Code Playgroud)
如您所见,您需要setSizeConstraint布局和setSizeHint项目.
如果你使用 PyQt5,有一些变化,你必须使用QtWidgetsfor widget 而不是QtGui。如果与 PyQt5 一起使用,请使用此代码:
不要忘记导入 PyQt5:
from PyQt5 import QtCore, QtGui, QtWidgets`
itemN = QtWidgets.QListWidgetItem()
# Create widget
widget = QtWidgets.QWidget()
widgetText = QtWidgets.QLabel("I love PyQt!")
widgetButton = QtWidgets.QPushButton("Push Me")
widgetLayout = QtWidgets.QHBoxLayout()
widgetLayout.addWidget(widgetText)
widgetLayout.addWidget(widgetButton)
widgetLayout.addStretch()
widgetLayout.setSizeConstraint(QtWidgets.QLayout.SetFixedSize)
widget.setLayout(widgetLayout)
itemN.setSizeHint(widget.sizeHint())
# Add widget to QListWidget funList
funList.addItem(itemN)
funList.setItemWidget(itemN, widget)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16083 次 |
| 最近记录: |