Qt 窗口操作函數(置頂、全屏,最大化最小化按鈕設置等)


一、窗口置頂 與 取消置頂

void MainWindow::on_windowTopButton_clicked()
{
  if (m_flags == NULL)
  {
    m_flags = windowFlags();
    setWindowFlags(m_flags | Qt::WindowStaysOnTopHint);
    this->show();
  }
  else
  {
    m_flags = NULL;
    setWindowFlags(m_flags);
    this->show();
  }
}

二、全屏顯示 與 退出全屏

首先,在QT中對於窗口顯示常用的有這么幾個方法可以調用:

showFullScreen() // Qt全屏顯示函數
showMaximized() // Qt最大化顯示函數
showMinimized() // Qt最小化顯示函數
resize(x, y) // Qt固定尺寸顯示函數
setMaximumSize(w, h) // Qt設置最大尺寸函數
setMinimumSize(w, h) // Qt設置最小尺寸函數

但是 showFullScreen()showNormal() 只對頂級窗口有效果,對子窗口無效。要將子窗口全屏顯示可用以下方法:

  • 將要全屏的 Qt 子窗口調用 setWindowFlags(Qt::Window) 將其類型提升為頂級窗口模式,然后調用 showFullScreen() 函數將子窗口全屏顯示。
  • 當然全屏后還要恢復正常,即調用 setWindowFlags(Qt::subwindow) 將子窗口設置為非頂級窗口,再調用 showNormal() 還原子窗口顯示。
// 全屏顯示:
VideoWidget->setWindowFlags(Qt::Window);
VideoWidget->showFullScreen();

// 退出全屏時:
VideoWidget->setWindowFlags(Qt::SubWindow);
VideoWidget->showNormal();

三、窗口的 "最大化\最小化\關閉" 按鈕設置

1、在 QDialog 中添加 "最大化" 和 "最小化"按鈕

在使用 QDialog 時,默認情況下只有 “這是什么” 和 “關閉” 按鈕,但是我們習慣有最大化和最小化按鈕。這里介紹如何在該模式下如何設置。

this->setWindowFlags(Qt::Dialog | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);

其中 WindowMinMaxButtonsHint 設置的就是最大和最小按鈕,但是只這樣設置,關閉按鈕就不可用了,因此需要再添加 WindowCloseButtonHint 一項。


2、只禁止最大化按鈕

this->setWindowFlags(windowFlags() &~ Qt::WindowMaximizeButtonHint);

Qt::WindowMaximizeButtonHintWindowType 枚舉變量,通過修改它可以選擇禁止 "最小化" 或者 "關閉" 按鈕。


四、禁止拖動窗口大小

this->setFixedSize(this->width(),this->height());

五、獲取屏幕的寬度和高度

QApplication::desktop()->width();
QApplication::desktop()->height();

即得到屏幕分辨率,如 1024*768。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM