QT中窗体最大化最小化

在学习QT时,遇到窗体最大化和全屏显示的问题,发现showMaximized()和showFullScreen()效果相同。经过研究,通过QDesktopWidget进行判断和设置,解决了最大化时遮挡任务栏的问题。
摘要由CSDN通过智能技术生成

 

        这几天在看QT,虽然QT已经广泛使用了这么多年,但是自己还是第一次用,遇到许多问题,QT窗体的最大化最小化就是其中之一。下面我说一下。

       虽然QT中提供了最大化showMaximized()函数,和全屏函数showFullScreen()函数,但是在使用的时候你会发现他们没有差别,所以很不舒服,因为最大化并没有遮挡住任务栏,但是全屏则相反。但是实际使用的时候发现不是这样,他们二者结果竟然一样,自己研究了许久发现可以通过如下方式设置:

        QDesktopWidgetdesktopWidget;

    QRect desktop = desktopWidget.availableGeometry();

         if

Qt,如果你想隐藏窗口最大化最小化按钮,你可以通过设置窗口样式和装饰边框来实现。下面是一个简单的步骤: 1. **创建窗口**: 首先,在`QMainWindow`或者其他的窗体初始化窗口。 ```cpp QMainWindow *mainWindow = new QMainWindow(); ``` 2. **设置窗口风格**: 使用`setWindowFlags()`方法,并指定`Qt::WindowNoTitleBar`和`Qt::CustomizeWindowHint`,前者会移除标题栏,后者允许自定义窗口外观。 ```cpp mainWindow->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::WindowNoTitleBar | Qt::CustomizeWindowHint); ``` 这里使用了`Qt::FramelessWindowHint`来移除边框,`Qt::WindowStaysOnTopHint`可以让窗口始终保持在最上层。 3. **禁止最大化最小化操作**: 虽然设置了`Qt::WindowNoTitleBar`,系统默认的图标还是可用的。如果你也想禁用它们,可以在`show()`函数之前重绘窗口,覆盖默认图标。 ```cpp void MainWindow::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(Qt::NoPen); painter.setBrush(Qt::black); painter.drawRect(rect()); } // 然后在show()函数里调用这个方法 mainWindow->show(); ``` 4. **注意事件处理**: 如果你需要处理用户试图点击最大化/最小化按钮的行为,可以添加鼠标点击事件处理器并阻止默认行为。 现在,窗口将没有标题栏,也没有最大化最小化按钮。然而,这并不意味着完全禁止用户手动调整大小,因为窗口边缘通常还是可拖动的。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值