qt 如何使用私有类?

在模块后面加上 -private 关键字,例如 widgets-private 然后 qmake 让配置文件运行一下。

在使用 QStackedLayout 布局并设置 QStackedLayout::StackAll 模式,且没有设置 QStackedLayout 父对象,则会默认显示最后一个元素,但内部下标还是 0,即栈底

// 添加元素
int QStackedLayout::addWidget(QWidget *widget)
{
    Q_D(QStackedLayout);
    return insertWidget(d->list.count(), widget);
}

int QStackedLayout::insertWidget(int index, QWidget *widget)
{
    Q_D(QStackedLayout);
    addChildWidget(widget);
    index = qMin(index, d->list.count());
    if (index < 0)
        index = d->list.count();
    QWidgetItem *wi = QLayoutPrivate::createWidgetItem(this, widget);
    d->list.insert(index, wi);
    invalidate();
    if (d->index < 0) {
        setCurrentIndex(index);
    } else {
        if (index <= d->index)
            ++d->index;
        if (d->stackingMode == StackOne)//判断显示模式
            widget->hide();
        widget->lower();//元素沉底
    }
    return index;
}
posted @ 2019-10-24 12:50  學海無涯  阅读(2153)  评论(0编辑  收藏  举报