缺少 QLayout 构造函数来实现卡片布局

Posted

技术标签:

【中文标题】缺少 QLayout 构造函数来实现卡片布局【英文标题】:Missing QLayout constructor to implement Card Layout 【发布时间】:2019-02-11 16:10:21 【问题描述】:

我正在尝试实现这个 CardLayout 示例https://doc.qt.io/qt-5/layout.html,但是当我尝试编译给定文件 card.h 时,它无法抱怨 QLayout 的构造函数,因为没有接受给定参数的重载。

我是否错过了这个示例的某些内容?此示例是否仅适用于旧版本的 Qt?我正在使用 Qt 5.12

Card.h 代码

#ifndef CARD_H
#define CARD_H

#include <QtWidgets>
#include <QList>

class CardLayout : public QLayout

public:
    CardLayout(QWidget *parent, int dist): QLayout(parent, 0, dist) 
    CardLayout(QLayout *parent, int dist): QLayout(parent, dist) 
    CardLayout(int dist): QLayout(dist) 

private:
    QList<QLayoutItem*> list;
;
#endif

【问题讨论】:

所有构造函数中的哪一个在抱怨? 他们都不见了 是的,看我的回答和官方文档 【参考方案1】:

根据 qt 5.12 的文档

https://doc.qt.io/qt-5/qlayout.html

QLayout 类不再有这样的构造函数了,

你只有

QLayout(QWidget *parent)

QLayout()

【讨论】:

是的,我注意到了。我不确定为什么这个例子甚至在 5.12 文档中使用这些构造函数

以上是关于缺少 QLayout 构造函数来实现卡片布局的主要内容,如果未能解决你的问题,请参考以下文章

想做一个java的简单图片浏览器,用的卡片布局来显示图片,有上一本,下一本两个按钮来切换图片

Java图形化界面设计——布局管理器之CardLayout(卡片布局)

CollectionView缩放水平卡片布局

如何实现同等间隙的卡片布局

CollectionView旋转水平卡片布局

布尔玛卡片的 CSS 样式