Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 对QListView使用自定义形状_C++_Qt5_Qlistwidget_Qlistview_Qlist - Fatal编程技术网

C++ 对QListView使用自定义形状

C++ 对QListView使用自定义形状,c++,qt5,qlistwidget,qlistview,qlist,C++,Qt5,Qlistwidget,Qlistview,Qlist,我正在尝试创建具有多边形形状的QListView。或者换句话说,我希望我的列表如下所示: 此时此刻看起来是这样的: 我已经知道或尝试过的: 我知道paintEvent(QPaintEvent*e)函数,我可以在其中更改小部件的形状,但我不知道如何更改包含该列表项的实际框的形状 我还尝试了QStyledItemDelegate,并覆盖了两个函数paint和sizeHint。但是有了这些,我只能更改列表中的元素,而不能更改实际的列表形状 换句话说,paintEvent的第一个选项将更改小部

我正在尝试创建具有多边形形状的QListView。或者换句话说,我希望我的列表如下所示:

此时此刻看起来是这样的:

我已经知道或尝试过的:

  • 我知道
    paintEvent(QPaintEvent*e)
    函数,我可以在其中更改小部件的形状,但我不知道如何更改包含该列表项的实际框的形状
  • 我还尝试了
    QStyledItemDelegate
    ,并覆盖了两个函数
    paint
    sizeHint
    。但是有了这些,我只能更改列表中的元素,而不能更改实际的列表形状

换句话说,
paintEvent
的第一个选项将更改小部件的形状(图像中的黑色部分),而不是保存元素的容器。第二个选项是改变列表中元素的外观,而不是保存它们的容器

简言之,有什么方法可以更改容器的形状吗?

您可以将其用于
视图(或您称之为容器)和项目。