Qt QML元素定位工作异常
这是我的自定义控件。它画背景。我想让它占据整个标题。但是,除了使用一些数字显式设置宽度和高度之外,这些方法都不起作用。甚至parent.width和parent.height都不起作用 控件-选项卡ViewHeaderBG 代码: 整个控件用作ListView中的头控件 添加#1. 选项卡ViewHeaderBGQC代码:Qt QML元素定位工作异常,qt,qml,qtquickcontrols2,Qt,Qml,Qtquickcontrols2,这是我的自定义控件。它画背景。我想让它占据整个标题。但是,除了使用一些数字显式设置宽度和高度之外,这些方法都不起作用。甚至parent.width和parent.height都不起作用 控件-选项卡ViewHeaderBG 代码: 整个控件用作ListView中的头控件 添加#1. 选项卡ViewHeaderBGQC代码: class TabViewHeaderBgQc : public QQuickPaintedItem { Q_OBJECT public:
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。如何设置根项的宽度/高度
?如果您希望rootItem
将从其子级派生其维度,那么这是行不通的。您可以将根项
的隐式宽度
和隐式高度
设置为外部行
的隐式宽度
和隐式高度
。在这种情况下,此行
项将指定此组件的尺寸。当您将此对象创建到ListView
的contentWidth
和contentHeight
时,还可以在ListView
中设置根项的implicitWidth
和contentHeight
的
qmlRegisterType<TabViewHeaderBgQc>("MyControls", 1, 0, "TabViewHeaderBg");