qt 中隐藏namedwindow的标题栏

本文介绍如何在Qt中使用OpenCV播放视频时隐藏namedwindow的标题栏。通过设置OpenCV的窗口属性可以实现全屏隐藏标题栏,或者通过获取窗口句柄并转换为QWidget,结合Qt的样式Flag实现标题栏隐藏。此外,还提到移动窗口到屏幕左上角的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

做个展会的demo,播放视频,用opencv进行视频的播放。opencv也提供high-gui。但是namedwindow没有控制标题栏的函数或者属性设置。不显示标题栏有两种情况。

1、你全屏namedwindow窗口,opencv自己做处理不显示窗口标题栏。

namedWindow("input", CV_WINDOW_NORMAL| CV_GUI_NORMAL | CV_WINDOW_FREERATIO);
setWindowProperty("input", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);

CV_WINDOW_NORMAL :允许你resize窗口大小

CV_GUI_NORMAL:不显示工具栏

CV_WINDOW_FREERATIO:通俗点讲就是铺满,不保持图像先前的尺寸比例

 

CV_WND_PROP_FULLSCREEN、CV_WINDOW_FULLSCREEN:全屏

用这两句话就可以。

2.自己resize窗口大小(不调用1里面的setWindowProperty设置 全屏)。我百度了一下发现有MFC下面的方法。qt没有。。。。

只能自己写, 看代码

    Mat input;
    input = imread("{7D57422D-7B5B-404C-936B-23031116855B}.jpg");

    namedWindow("input", CV_WINDOW_NORMAL| CV_GUI_NORMAL | CV_WINDOW_FREERATIO);
    resizeWindow("input", 960, 1080);
    QWidget* handle = (QWidget*)cvGetWindowHan
### OpenCV 创建无标题栏窗口的方法 在 OpenCV 中,默认情况下 `imshow` 函数创建的窗口带有标准的操作系统风格边框和标题栏。为了实现无标题栏的效果,可以考虑以下几种方法: #### 方法一:使用全屏模式去除标题栏 通过设置窗口属性为全屏模式来间接达到隐藏标题栏的目的。这种方法适用于希望最大化利用屏幕空间的应用场景。 ```cpp // C++ 示例代码 #include <opencv2/opencv.hpp> int main() { cv::Mat image = cv::imread("./images/example.jpg"); cv::namedWindow("No Title Bar Window", cv::WINDOW_NORMAL); cv::setWindowProperty("No Title Bar Window", cv::WND_PROP_FULLSCREEN, cv::WINDOW_FULLSCREEN); cv::imshow("No Title Bar Window", image); cv::waitKey(0); return 0; } ``` 此方式能够使窗口占据整个显示器区域,并且通常显示任何装饰性的元素如标题栏[^2]。 #### 方法二:自定义窗口样式(仅限 Windows 平台) 对于更高级的需求,在某些平台上可以通过修改底层窗口管理器的行为来自定义外观。例如,在Windows环境下可以直接操作WinAPI调整窗口样式。 ```c++ // 需要在C++项目中引入必要的头文件以及链接库 HWND hwnd = (HWND)cvGetWindowHandle("Custom Styled Window"); SetWindowLong(hwnd,GWL_STYLE,WS_POPUP); // 移除默认窗口样式 ShowWindow(hwnd,SW_SHOWDEFAULT); UpdateWindow(hwnd); ``` 请注意上述代码片段依赖于特定平台特性,因此具备跨平台兼容性[^3]。 #### 方法三:第三方GUI框架集成 如果对视觉效果有更高要求,则建议采用专门设计用于图形界面开发的工具包,比如Qt或wxWidgets等,它们提供了更加灵活丰富的控件定制选项,可以在其中嵌入OpenCV绘制的内容而受限于后者本身较为简单的UI组件集。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值