QT 窗口设置为全屏时会遮盖底下任务栏的解决办法

QT 窗口设置为全屏时会遮盖底下任务栏的解决办法

起因

最近想让一个窗口show()时默认为全屏,测试时发现,它确实是全屏了,但过于全了,窗口的部分内容,会被windows11底下的任务栏遮住。
代码如下:

	AdminMainWindow::AdminMainWindow(QWidget *parent)
    : QMainWindow{parent}
{
    //全屏
    this->showFullScreen();
    this->setWindowFlags(Qt::Dialog|Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
//······仅展示部分代码
}

情况大概类似于下图:

QQ音乐部分内容被遮住

解决办法

上方我们使用的代码是this->showFullScreen();,但此“showFullScreen”非我们想要的全屏,我们想要的其实是this->showMaximized();
更改后代码如下:

AdminMainWindow::AdminMainWindow(QWidget *parent)
    : QMainWindow{parent}
{
    //全屏
    this->showMaximized();
    this->setWindowFlags(Qt::Dialog|Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
	//······仅展示部分代码
}

运行后,发现就能达到想要的效果了。

在使用Qt开发Linux应用程序时,如果你想要实现窗口全屏并且底部任务栏处有黑边的问题,这通常是因为默认情况下,Linux桌面环境会试图保留任务栏区域的可见性。以下是解决这个问题的一般步骤: 1. **窗口模式设置**:Qt提供`setWindowFlags()`函数来改变窗口的外观和行为。尝试将窗口设置为无边框(`Qt::WindowNoFrame`)并关闭标题栏(`Qt::WindowTitleBarNone`),然后使用`showFullScreen()`开启全屏模式。 ```cpp QMainWindow *window = new QMainWindow(); window->setWindowFlags(Qt::Window | Qt::WindowCloseButtonHint | Qt::WindowMinimizeButtonHint | Qt::WindowStaysOnTopHint | Qt::WindowSystemMenuHint | Qt::WindowNoTitleBar | Qt::WindowNoDropShadow | Qt::WindowNoFrame); window->showFullScreen(); ``` 2. **调整布局**:如果想隐藏底部任务栏,你需要考虑如何处理窗口的布局。可以试着将窗口放在屏幕边缘,并设置其大小填充整个屏幕,避免任务栏区域显示出来。 3. **D-Bus信号处理**:某些Linux桌面环境(如Ubuntu)允许通过D-Bus发送命令来动态更改任务栏的行为。你可以监听系统信号并根据需要调整窗口的位置或状态。 4. **特定平台配置**:针对特定的Linux发行版(如KDE、GNOME等),可能需要查阅相应的文档或社区解决方案,了解如何阻止任务栏覆盖窗口。 **相关问题--:** 1. 使用Qt开发时,有哪些其他方法可以让窗口更贴合屏幕? 2. 如何通过编程方式控制任务栏是否可见? 3. 如何防止用户手动最小化或最大化窗口时露出任务栏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值