C++ C++;:需要切换开关才能在我的Qt5窗口中获取dynamic resizeEvent()数据!?(Linux,X11)

C++ C++;:需要切换开关才能在我的Qt5窗口中获取dynamic resizeEvent()数据!?(Linux,X11),c++,events,raspberry-pi,qt5,scaling,C++,Events,Raspberry Pi,Qt5,Scaling,当我在QT5程序中调整QMainWindow的大小时,我已经尝试了两天的设置。我已经开始添加我自己的X11代码,但它开始觉得可笑基本上复制功能,应该在那里 然后我就在里面搜索了一下,有人告诉我这确实应该是我想要做的 基本上,我只想得到一个事件流,返回更新的窗口大小和位置。重写resizeEvent()和moveEvent()是我尝试的第一件事,但我只有在放开鼠标后才会触发事件。当我拖动缩放窗口时不会。 我试过很多东西 我开始怀疑这是不是在Linux上不起作用,或者实际上是Raspbian Bus

当我在QT5程序中调整QMainWindow的大小时,我已经尝试了两天的设置。我已经开始添加我自己的X11代码,但它开始觉得可笑基本上复制功能,应该在那里

然后我就在里面搜索了一下,有人告诉我这确实应该是我想要做的

基本上,我只想得到一个事件流,返回更新的窗口大小和位置。重写resizeEvent()和moveEvent()是我尝试的第一件事,但我只有在放开鼠标后才会触发事件。当我拖动缩放窗口时不会。 我试过很多东西

我开始怀疑这是不是在Linux上不起作用,或者实际上是Raspbian Buster? 或者是否有一个设置需要切换以获取动态事件?是否存在某种“性能模式”或其他什么?我正在使用Qt5.12

void StreamWindow::resizeEvent(QResizeEvent* event)
{
    QSize size = event->size();
    printf("Size: %d, %d\n", size.width(), size.height());

    // HERE I'm planning to do stuff

    QMainWindow::resizeEvent(event);
}

谢谢

IMHO,这取决于窗口管理器(而不是您的应用程序)在交互调整大小时向应用程序“触发”多少调整大小事件。我已经很久没有在*ix/X11中工作了,但即使在Windows中,我也记得至少在过去有这样一个选项。(我没有检查它是否仍然可用。)在过去,对于低性能的图形H/W,必须使外观友好。如今,这已经不再是一个问题了,至少对于装有Windows的普通PC来说是这样。我可以想象X11窗口管理器仍然提供此功能。我花了很长时间才找到这样的配置。任何X11窗口管理器中的功能,并最终在:
OpaqueResize=0
窗口中找到该功能,拖动时立即调整大小,不显示轮廓。你可以看看医生。你正在使用的窗口管理器中找到一个类似的选项。是的,开始有这种感觉。除非Iv'e完全错过了Qt中的一些基础知识,但我已经做了太多的谷歌搜索(实际上大部分是躲闪),所以我会认为会出现一些问题。我刚刚检查了一下,我的桌面窗口都是不透明的,不仅仅是透明的轮廓形状。但可能仍然是这样。我看到有些东西可能能够捕获X11事件,也许我可以尝试让它工作,看看Qt是否丢失/忽略了一些事件。QX11Info::peekEventQueue(QX11Info::PeekerCallback peeker,void*peekerData=nullptr,QX11Info::PeekOptions=PeekDefault,qint32 peekerId=-1)