qt 中隱藏namedwindow的標題欄

做個展會的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*)cvGetWindowHandle("input");
    handle->setWindowFlags(Qt::Widget | Qt::FramelessWindowHint |          Qt::WindowSystemMenuHint | Qt::WindowStaysOnTopHint);
    moveWindow("input",-8,-31); // 這個自己可以調整
    imshow("input", input);
    waitKey(0);

獲取窗口句柄,轉成QWidget。這時候就可以把他當成qt的窗口去處理了。

Qt::FramelessWindowHint :隱藏標題欄

Qt::WindowStaysOnTopHint: 窗口置於最前端

標題欄隱藏成功。但是它還是存在的只是隱藏了,我想把窗口放到左上角,moveWindow 0,0 肯定不行,-8 ,-31 是我根據自己屏幕調整的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章