gpt4 book ai didi

c++ - qt 在 showEvent() 上隐藏一个控件

转载 作者:行者123 更新时间:2023-11-30 00:57:39 28 4
gpt4 key购买 nike

我在一个窗口上调用 show(),它有几个控件,所有控件都显示了。

其中一个控件是继承自 QFrame 的自定义控件。

如果设置了特定标志,我想隐藏此控件。所以,我有

void MyCustomControl::showEvent ( QShowEvent * /* evt */ )
{
if (!m_visibleAllowed)
hide();
}

虽然这隐藏了控件,但它使控件变得愚蠢;它看起来结冰了。调整窗口大小时,控件所在的区域不会刷新。搜索论坛,我得到的想法是隐藏控件不应该在 showEvent() 上完成,是真的吗?如果是这样,那么我应该如何/在哪里尝试隐藏控件。如果可以从 showEvent() 中隐藏控件,我该如何防止控件被卡住。

谢谢你的时间。

最佳答案

如果问题出在您的节目事件期间调用 hide()(我无法确认它是否被明确禁止,但一般来说这听起来不是一个好主意)并且您可以从您的节目事件中调用 hide确实需要这段代码,然后你可以使用单次计时器:

QTimer::singleShot( 0, this, SLOT(hide()) );

这只会将 hide() 函数的执行推迟到事件循环的下一轮。

关于c++ - qt 在 showEvent() 上隐藏一个控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7603581/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com