我使用Qt Designer制作两个.ui文件,一个是我的应用程序的主窗口,第二个是我制作的自定义小部件。我的想法是使用这个自定义Widget在我的主应用程序上填充listWidget来显示数据。
我制作了这段代码,它编译时没有问题,但是在运行时它没有在List上显示customWidget
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton, QWidget, QAction, QTabWidget,QVBoxLayout,QDialog
from PyQt5 import QtCore, QtGui, QtWidgets
from mainwindowReclamo import Ui_MainWindow
from widgetReclamos import Ui_Form
#Custom Widget*
class WidgetReclamo(QWidget, Ui_Form):
"""docstring for ClassName"""
def __init__(self,*args,**kwargs):
QWidget.__init__(self,*args,**kwargs)
self.setupUi(self)
print("I am Alive")
#My Main Program*
class ProgramaReclamos(QMainWindow, Ui_MainWindow):
def __init__(self,*args,**kwargs):
QMainWindow.__init__(self,*args,**kwargs)
self.setupUi(self)
#I create an Item*
Item = QtWidgets.QListWidgetItem(self.listWidget)
#I create a custom widget*
Item_Widget = WidgetReclamo()
#I set the Size from the Item to the same of the widget*
Item.setSizeHint(Item_Widget.sizeHint())
#I add it to the list*
self.listWidget.addItem(Item)
self.listWidget.setItemWidget(Item, Item_Widget)
if __name__ == '__main__':
app = QApplication(sys.argv)
prog = ProgramaReclamos()
prog.show()
sys.exit(app.exec_())
我在网上看到了一些问题,他们的答案是针对PyQt4的,他们说了一些关于使用Widget布局的内容,但我不明白我是否必须制作一个因为小部件是在.ui文件中制作的
答案 0 :(得分:0)
正如EYLLANESC在评论中所说:
将Item.setSizeHint(Item_Widget.sizeHint())更改为Item.setSizeHint(Item_Widget.size()) - eyllanesc
谢谢!