Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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
qtexoption::对齐会删除信息_Qt_Qt5 - Fatal编程技术网

qtexoption::对齐会删除信息

qtexoption::对齐会删除信息,qt,qt5,Qt,Qt5,为什么不能存储Qt::AlignBaseline标志? 经过一些研究,我发现它存储在QTExtraption中的一个8位宽的位字段中。由于它的值为0x100,因此删除该标志也就不足为奇了 这种行为是故意的吗?我还没有弄清楚到底是什么,但是,根据文档,这是一个非常普通的垂直对齐标志 #include <QDebug> #include <QTextOption> struct MyTextOption { int int_alignment : 8; Qt

为什么不能存储
Qt::AlignBaseline
标志? 经过一些研究,我发现它存储在QTExtraption中的一个8位宽的位字段中。由于它的值为
0x100
,因此删除该标志也就不足为奇了

这种行为是故意的吗?我还没有弄清楚到底是什么,但是,根据文档,这是一个非常普通的垂直对齐标志

#include <QDebug>
#include <QTextOption>

struct MyTextOption
{
    int int_alignment : 8;
    Qt::Alignment alignment;
};

int main()
{
    const Qt::Alignment alignment = Qt::AlignLeft | Qt::AlignBaseline;
    qDebug() << alignment;            // Qt::AlignLeft|Qt::AlignBaseline

    QTextOption option;
    option.setAlignment(alignment);
    qDebug() << option.alignment();   // Qt::AlignLeft|Qt::AlignLeading

    MyTextOption my_option;
    my_option.int_alignment = alignment;
    qDebug() << static_cast<Qt::Alignment>(my_option.int_alignment);
                                      // Qt::AlignLeft|Qt::AlignLeading

    my_option.alignment = alignment;
    qDebug() << my_option.alignment;  // Qt::AlignLeft|Qt::AlignBaseline
}
#包括
#包括
结构MyTextOption
{
内部校准:8;
Qt::对齐;
};
int main()
{
常量Qt::Alignment Alignment=Qt::AlignLeft | Qt::AlignBaseline;

qDebug()在Qt 5.11上可复制。我打开了一个问题:在Qt 5.11上可复制。我打开了一个问题: