QT为什么不看委托绘制的自定义小部件呢?

QT Why dont see a customwidget painted by a delegates?

本文关键字:小部 自定义 绘制 为什么 不看 QT      更新时间:2023-10-16

我有一个模型/视图模式。我正在开发一个通用的多用途委托,并且我希望使用我拥有的一些自定义小部件。我测试的第一个不工作:

void A_delegates::paint(QPainter* painter, const QStyleOptionViewItem & option,
 const QModelIndex& index) const
QRect the_rect(option.rect);    
A_file_chooser file_chooser;
file_chooser.setGeometry(QRect(QPoint(0,0), the_rect.size()));
file_chooser.render(painter,the_rect.topLeft());

我看到一个空单元格?我已经阅读了文档,搜索了一些有用的东西,但没有成功。有人能帮帮我吗?谢谢。

(文件选择器就像一个标签加一个按钮一样简单。我可以在其他场景中看到它

您正在尝试将文件选择器装入单元格并强制其呈现到您的小部件中。但文件选择器不是任何东西的子元素,它还没有初始化,所以它会跳过渲染。在委托的paint函数中,你必须使用给定的画家来绘制一些东西。是否希望单元格中的静态按钮图像?无法点击!您需要在单元格中添加真正的文件选择器,以使其工作