Qt QML元素定位工作异常

Qt QML元素定位工作异常,qt,qml,qtquickcontrols2,Qt,Qml,Qtquickcontrols2,这是我的自定义控件。它画背景。我想让它占据整个标题。但是,除了使用一些数字显式设置宽度和高度之外,这些方法都不起作用。甚至parent.width和parent.height都不起作用 控件-选项卡ViewHeaderBG 代码: 整个控件用作ListView中的头控件 添加#1. 选项卡ViewHeaderBGQC代码: class TabViewHeaderBgQc : public QQuickPaintedItem { Q_OBJECT public:

这是我的自定义控件。它画背景。我想让它占据整个标题。但是,除了使用一些数字显式设置宽度和高度之外,这些方法都不起作用。甚至parent.width和parent.height都不起作用

控件-选项卡ViewHeaderBG

代码:

整个控件用作ListView中的头控件

添加#1.

选项卡ViewHeaderBGQC代码:

class TabViewHeaderBgQc :
        public QQuickPaintedItem
{
    Q_OBJECT

public:
    TabViewHeaderBgQc(
            QQuickItem *parent = 0);

    void paint(QPainter *painter) override;

signals:

public slots:
};

TabViewHeaderBgQc::TabViewHeaderBgQc(
        QQuickItem *parent) :
    QQuickPaintedItem(parent)
{

}

void TabViewHeaderBgQc::paint(QPainter *painter)
{
    QPen pen(QColor(229,229,229), 1);
    painter->setPen(pen);
    painter->drawRect(boundingRect());
}
使用以下代码导入:

qmlRegisterType<TabViewHeaderBgQc>("MyControls", 1, 0, "TabViewHeaderBg");
qmlRegisterType(“MyControls”,1,0,“TabViewHeaderBg”);
添加#2.


Qt 5.8,Windows 10,VisualStudio 2015。

显示TabVIEWAdBEG代码,请将其从QQuestPrimeTId派生出来的C++控件。它当前不包含任何有用的代码…您的代码必须是可复制的,没有它就不能复制。好的,请查看添加1。如何设置根
项的宽度/高度
?如果您希望root
Item
将从其子级派生其维度,那么这是行不通的。您可以将根
隐式宽度
隐式高度
设置为外部
隐式宽度
隐式高度
。在这种情况下,此
项将指定此组件的尺寸。当您将此对象创建到
ListView
contentWidth
contentHeight
时,还可以在
ListView
中设置根
项的
implicitWidth
contentHeight

qmlRegisterType<TabViewHeaderBgQc>("MyControls", 1, 0, "TabViewHeaderBg");