小编Joh*_*ith的帖子

如何在Qt中以编程方式调整分割器小部件的大小?

我使用QSplitter并排放置一些小部件.

作为用户,我可以通过拖动分割器来调整这些小部件的大小.

作为程序员,我不知道如何准确指定目前我想要的宽度和高度.

这是我的原始状态(通过不同的延伸调整). 原始状态

我尝试使用setFixedSize(),但在调用之后,用户不能再自行调整窗口小部件的大小(这绝对是正确的行为,因为大小得到'固定'). 在此输入图像描述

如果我使用resize(),它几乎没有效果.小部件调整大小,但(!)不正确和(!)当我再次开始拖动时,小部件获得其初始状态. 在此输入图像描述

有没有办法正确调整代码中左侧窗口小部件的大小?我不希望有固定的大小,但resize()无法正常工作,你可以看到.所以我该怎么做?

c++ qt resize qsplitter

6
推荐指数
1
解决办法
2195
查看次数

删除后为什么(&this!= nullptr)?

我有一节课:

class A
{
public:
    void foo(void)
    {
        // equals to syntactically incorrect (&this == nullptr)
        if (*(void**)this == nullptr)
            return;
        ...
    }
};
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

A * a = new A;
...

delete a;
...

a->foo();
Run Code Online (Sandbox Code Playgroud)

为什么条件只true适用于发布版本?如果我切换到调试版本,我通常会得到类似0xFEEFEEFE的东西.

编辑

好,朋友们.你说的是绝对正确的,我知道.未定义的行为是标准未指定的行为.这是每个平台以自己的方式实现(但实现)的方式.

这个问题的目的是了解它是如何在Windows中实现的.这段代码总能正常工作('总是正确'意味着:在所有版本的Windows上(以xp开头),任何编译器调用该方法,语句为真)).在我的情况下,我想知道如果在Windows中删除对象会发生什么.

PS我应该在wasm.ru中问过这个问题.抱歉.

c++ oop debugging

-8
推荐指数
1
解决办法
204
查看次数

标签 统计

c++ ×2

debugging ×1

oop ×1

qsplitter ×1

qt ×1

resize ×1