gpt4 book ai didi

css - Qt:巨大的可滚动子菜单丢失元素

转载 作者:行者123 更新时间:2023-11-28 12:24:31 32 4
gpt4 key购买 nike

更新添加:

我已经修复了这个问题。首先,我尝试调用 MySubmenu -> clear() 并在单击父菜单时重建子菜单。令人惊讶的是,这没有用。所以我引入了大手笔:delete MySubmenu 然后是 MySubmenu = new QMenu (MyMainWindow) 并重建子菜单。它现在可以工作,没有明显的延迟。所以我很高兴,我想。

原始问题:

我有一个包含大约 1000 个元素的子菜单(它是调试器中的 C 函数列表)。默认情况下,Qt 以列的形式显示子菜单,但是这个子菜单太大而无法显示在屏幕上,而且我无法访问不适合的元素。

所以我使用样式表使子菜单可滚动:

MySubmenu -> setStyleSheet ("* { menu-scrollable: 1 }") ;

看起来像这样:

Big menu

注意顶部和底部的滚动按钮。但是现在如果我选择一个元素(在这个例子中是 PopRecordLength),那么下次我打开子菜单时,PD_DecryptCommand 上面的所有元素都消失了:

Bad menu

顶部的滚动按钮消失了(您可以看到的那条小线是以前元素的下划线。)如果我向下滚动到底部,就会有很大的空白空间。子菜单的总大小没有改变,但是 PD_DecryptCommand 上面的元素已经从顶部消失了,我无法用鼠标或键盘访问它们。

但是...我刚刚发现,在准备这篇文章的过程中,如果我点击这个大空白区域,子菜单消失了,但下次打开它时,它又恢复了原来的样子原始状态。所以有一个解决方法。但它不是很友好。

这是 Qt 中的错误吗?还是我没有正确设置样式表?

最佳答案

可能是因为您有太多的元素以至于菜单占据了整个屏幕的高度,当您选择一个元素时它的高度会增加一点并且顶部的滚动按钮会消失。

我会尝试将菜单的 triggered 信号与 update 插槽连接起来,以便在每次触发操作时重新绘制菜单

connect(MySubmenu , SIGNAL(triggered(QAction*), MySubmenu , SLOT(update()));

您也可以尝试更改菜单的最大高度(max-height 样式表属性)。

关于css - Qt:巨大的可滚动子菜单丢失元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8256105/

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