我正在尝试制作一个QListWidget,其中每个项目都是一个包含文本和PushButton的简单小部件。我使用以下代码:
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)
问题在于,没有任何东西显示出来。我可以使用键盘导航到一个空白行,但是它是空的。当小部件仅包含一个pushbutton时,它可以工作,因此并不是pushbutton本身弄乱了事情。是否有关于setItemWidget
可以处理的窗口小部件复杂性的限制?也许我需要超越方便类,正如下面一些相关帖子中所建议的那样?
相关帖子
pyqt向QListWidget添加小部件
请注意,前一个帖子标题与我的类似,但似乎是关于QtDesigner代码拼贴(混合一些自定义内容)的相对含糊的问题。完全不清楚这实际上是提问者应该问的问题。尽管标题使其看起来像重复,但问题(我祈祷)并非如此。
我对这篇帖子也有类似的看法。
具有自定义项和自定义项小部件的QListView/QListWidget
在QT中向QListWidget添加自定义小部件,单击问题在QT中?
http://www.qtcentre.org/threads/8660-Drawing-a-widget-in-QItemDelegate-s-paint-method
setSizeHint
?似乎省略setSizeHint
并不会改变我的GUI的外观。2)为什么我的大小提示默认为-1,-1,使用“SetFixedSize”如何解决这个问题?为什么它不只是将其固定在错误值(-1,-1)上。有没有好的文档介绍这些问题的内部情况?(文档包括:http://qt-project.org/doc/qt-4.8/qt.html#SizeHint-enum和http://qt-project.org/doc/qt-4.8/qlayout.html#SizeConstraint-enum) - ericQLayout::SetFixedSize
主窗口小部件的大小被设置为sizeHint();
,它将无法调整大小。如果不设置大小提示,则带标签和按钮的小部件将比项更大,因此会显得非常丑陋和不正确。 - Jablonski