做個展會的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 是我根據自己屏幕調整的。