精华内容
下载资源
问答
  • Qt窗口最大化

    千次阅读 2018-09-26 11:39:50
    //showMaximized(); //界面最大化,win10下可能无法最大化  setWindowState(Qt::WindowMaximized); //ok

        //showMaximized();  //界面最大化,win10下可能无法最大化
        setWindowState(Qt::WindowMaximized); //ok

    展开全文
  • # Qt无边框窗口最大化时拖拽还原代码 通过重定义eventFilter()函数和changeEvent()函数,实现Qt无边框窗口最大化时拖动标题栏还原窗口的效果。
  • Qt窗口最大化/最小化/窗口状态判断

    千次阅读 2019-10-21 17:17:44
    QT 中有一个函数: void QWidget::setWindowState ( Qt::WindowStateswindowState ) 这样的函数,通过它可以设置...有了这个就非常easy 了,想让窗体最大化,只需要 setWindowState(Qt::WindowMaximized);就行了 ...

    QT 中有一个函数:
    void QWidget::setWindowState ( Qt::WindowStateswindowState )
    这样的函数,通过它可以设置窗体的初始状态,Qt::WindowStates 一共有下面几种状态:

    在这里插入图片描述

    有了这个就非常easy 了,想让窗体最大化,只需要

    setWindowState(Qt::WindowMaximized);就行了

    展开全文
  • QT窗口最大化显示

    千次阅读 2015-06-17 11:09:50
    //默认最大化 setWindowState(Qt::WindowMaximized); 主窗口窗口 m_mdi = new QMdiArea(this); m_mdi->addSubWindow( m_splineshow ); m_splineshow->showMaximized();
    //默认最大化
    

    setWindowState(Qt::WindowMaximized);     主窗口

    子窗口

    m_mdi = new QMdiArea(this);

    m_mdi->addSubWindow( m_splineshow );    
    m_splineshow->showMaximized();

    展开全文
  • QT实现无边框窗体的最小化,最大化/还原,关闭,拖动和双击最大化等功能
  • 此demo中的三个按钮会跟随窗体的变化而改变位置,实现界面来回切换
  • 窗口最大化最大化前大小切换、最小化、关闭窗口、移动、拉伸、缩小。 很多时候,为了界面的美观,需要将界面设置为无边框窗口,这就需要重写上述功能来完善窗口。 2.具体步骤 最大化、最小化、关闭 为三个按钮...

    1.实现的功能

    窗口的 最大化和最大化前大小切换、最小化、关闭窗口、移动、拉伸、缩小。

    很多时候,为了界面的美观,需要将界面设置为无边框窗口,这就需要重写上述功能来完善窗口。

    2.具体步骤

    最大化、最小化、关闭 为三个按钮,按钮设置好布局位置,设置QIcon,将按钮添加入槽,具体步骤不在此叙述。

    以下三个槽函数即为最大化、最小化、关闭三个按钮的槽函数;
    私有变量中的变量和函数看注释和具体代码。

    private slots:
        void on_minBtn_clicked();
        void on_closeBtn_clicked();
        void on_maxBtn_clicked();
        
    private:
        Ui::RailwayPowerInterface  *ui;
        bool _isleftpressed = false; //判断是否是左键点击
        int _curpos = 0;    //鼠标左键按下时光标所在区域
        QPoint _plast;      //获取鼠标左键按下时光标在全局(屏幕而非窗口)的位置
        void mousePressEvent(QMouseEvent* event);//鼠标按下事件
        void mouseReleaseEvent(QMouseEvent* event);//鼠标释放事件
        void mouseMoveEvent(QMouseEvent* event);//鼠标移动事件  
        int countRow(QPoint p);            //获取光标在窗口所在区域的 行   返回行数
        int countFlag(QPoint p,int row);    //获取光标在窗口所在区域的 列  返回行列坐标
        void setCursorType(int flag);          //根据传入的坐标,设置光标样式
    

    窗口最大化、最小化、关闭的具体实现代码,比较简单

    //最小化界面
    void RailwayPowerInterface::on_minBtn_clicked()
    {
        this->showMinimized();
    }
    
    //关闭界面
    void RailwayPowerInterface::on_closeBtn_clicked()
    {
        this->close();
    }
    
    //放大,缩小界面
    void RailwayPowerInterface::on_maxBtn_clicked()
    {
        static bool max = false;
        static QRect location = this->geometry();
        if (max) {
            this->setGeometry(location);//回复窗口原大小和位置
            ui->maxBtn->setIcon(QIcon(":/MAX_.png"));
        }else {
            ui->maxBtn->setIcon(QIcon(":/minMAX.png"));
            location = this->geometry();	//最大化前记录窗口大小和位置
            //this->setGeometry(qApp->desktop()->availableGeometry());
            this->showFullScreen();	//设置窗口铺满全屏
        }
        max = !max;
    }
    

    在设置窗口 可伸缩、可移动前,需要线分析以下窗口;
    如图,可将窗口分为如下9部分,光标在不同区域将呈现不同样式,而根据光标样式又可以将以下9个区域分为五类:

    (1,1) (3,3) :

    (1,2) (3,2) :

    (1,3) (3,3) :

    (2,1) (2,3) :

    (2,2) :以上区域用来伸缩窗口,此区域用来移动窗口

    注: 在代码中,将坐标(1,1) 以数字 11代替,(1,2)以数字12代替,其他坐标依次类推。

    通过宏定义来设定边框区域的大小(即绿色区域)

    #define MARGIN 2 
    
    //鼠标按下事件
    /*
     *作用:
     *1.判断是否时左键点击 _isleftpressed
     *2.获取光标在屏幕中的位置 _plast
     *3.左键按下时光标所在区域 _curpos
     */
    void RailwayPowerInterface::mousePressEvent(QMouseEvent *event)
    {
    	Q_UNUSED(event);
        if (event->button() == Qt::LeftButton)
        {
            this->_isleftpressed = true;
            QPoint temp = event->globalPos();
            _plast = temp;
            _curpos = countFlag(event->pos(), countRow(event->pos()));
        }
    }
    
    //鼠标释放事件
    /*
     *作用:
     *1.将_isleftpressed 设为false
     *2.将光标样式恢复原样式  setCursor(Qt::ArrowCursor);
     */
    void RailwayPowerInterface::mouseReleaseEvent(QMouseEvent *event)
    {
        Q_UNUSED(event);
        if (_isleftpressed)
            _isleftpressed = false;
        setCursor(Qt::ArrowCursor);
    }
    
    //鼠标移动事件 
    void RailwayPowerInterface::mouseMoveEvent(QMouseEvent *event)
    {
        Q_UNUSED(event);
        if(this->isFullScreen()) return;	//窗口铺满全屏,直接返回,不做任何操作
        int poss = countFlag(event->pos(), countRow(event->pos()));
        setCursorType(poss);
        if (_isleftpressed)//是否左击
        {
            QPoint ptemp = event->globalPos();
            ptemp = ptemp - _plast;
            if (_curpos == 22)//移动窗口
            {
                ptemp = ptemp + pos();
                move(ptemp);
            }
            else
            {
                QRect wid = geometry();
                switch (_curpos)//改变窗口的大小
                {
                case 11:wid.setTopLeft(wid.topLeft() + ptemp); break;//左上角
                case 13:wid.setTopRight(wid.topRight() + ptemp); break;//右上角
                case 31:wid.setBottomLeft(wid.bottomLeft() + ptemp); break;//左下角
                case 33:wid.setBottomRight(wid.bottomRight() + ptemp); break;//右下角
                case 12:wid.setTop(wid.top() + ptemp.y()); break;//中上角
                case 21:wid.setLeft(wid.left() + ptemp.x()); break;//中左角
                case 23:wid.setRight(wid.right() + ptemp.x()); break;//中右角
                case 32:wid.setBottom(wid.bottom() + ptemp.y()); break;//中下角
                }
                setGeometry(wid);
            }
            _plast = event->globalPos();//更新位置
        }
    }
    
    //获取光标在窗口所在区域的 列  返回行列坐标
    int RailwayPowerInterface::countFlag(QPoint p,int row)//计算鼠标在哪一列和哪一行
    {
        if(p.y()<MARGIN)
            return 10+row;
        else if(p.y()>this->height()-MARGIN)
            return 30+row;
        else
            return 20+row;
    }
    
    //获取光标在窗口所在区域的 行   返回行数
    int RailwayPowerInterface::countRow(QPoint p)
    {
        return (p.x()<MARGIN) ? 1 : (p.x()>(this->width() - MARGIN) ? 3 : 2);
    }
    
    //根据鼠标所在位置改变鼠标指针形状
    void RailwayPowerInterface::setCursorType(int flag)
    {
        switch(flag)
        {
        case 11:
        case 33:
            setCursor(Qt::SizeFDiagCursor);
            break;
        case 13:
        case 31:
            setCursor(Qt::SizeBDiagCursor);break;
        case 21:
        case 23:
            setCursor(Qt::SizeHorCursor);break;
        case 12:
        case 32:
            setCursor(Qt::SizeVerCursor);break;
        case 22:
            setCursor(Qt::ArrowCursor);
            QApplication::restoreOverrideCursor();//恢复鼠标指针性状
            break;
        }
    }
    
    展开全文
  • QT 窗口无法最大化

    千次阅读 2018-06-26 10:41:03
    // Qt的主窗口没有最小化,最大化按钮且最大化显示 int main(int argc,char * argv []) { QApplication a(argc,argv); TestQtForWinCE w; w.setWindowFlags(w.windowFlags()&〜Qt :: ...
  • 我的使用的环境:使用的QT版本是QT5.6.1。电脑windows系统是win7旗舰版。 文件列表: subwidget.h #ifndef SUBWIDGET_H #define SUBWIDGET_H #include <QtWidgets/QWidget> #include <QtWidgets/...
  • //Qt窗口没有最小化,最大化按钮且最大化显示 int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWinCE w; w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint&...
  • #Qt美观UI窗口 1. 去除系统自带边框; 2. 设置窗口圆角、窗口阴影; 3. 设置窗口可任意拖动; 4. 添加最大化、最小化、关闭按钮; 5.窗口功能完善,无bug。
  • Qt窗体最大化、最小化以及关闭

    千次阅读 2020-07-19 10:37:25
    Qt窗体最大化、最小化以及关闭 前言:最近学长再让学...学长的QWidget不是用的默认窗口的样式,原因是:原来的样式太丑了,所以要把原来的窗口的边框给去掉,窗口最大化、最小化以及关闭的功能需要自己加控件加图,自
  • 一、窗口置顶 与 取消置顶 void MainWindow::on_windowTopButton_clicked() {  if (m_flags == NULL)  {  m_flags = windowFlags();  setWindowFlags(m_flags | Qt::WindowStaysOnTopHint);  this->show(); ...
  • 最大化显示 setWindowState(Qt::WindowMaximized); PS:其它待更新
  • QT禁用“最大化按钮“和“禁止调节窗口大小“ 分类专栏: QT 版权 QT禁用"最大化按钮"和"禁止调节窗口大小" “最大化按钮”:setWindowFlags(windowFlags()& ~Qt::WindowMaximizeButtonHint); “禁止调节窗口大小...
  • Qt窗口的一些简单设置-标题、图标、最大化最小化按钮、任务栏图标
  • Qt进行开发界面时,既想要实现友好的用户交互又想界面漂亮,那么自定义界面就必不可少。其中有一个操作就是是我们每一个Qter开发者都要会的,而且是经常进行的。 Qt::FramelessWindowHint这个属性想必大家都使用过...
  • QT隐藏最大化和最小化按钮

    万次阅读 2017-04-26 13:39:30
    隐藏(不显示)最大化最小化按钮: MainWindow w; w.setWindowFlags(w.windowFlags()&~...使窗口可以最大化,但不能最小化: MainWindow w; w.setWindowFlags(w.windowFlags()&~Qt::WindowMinMaxButtonsHint|Qt:
  • 以上这篇pyqt5 禁止窗口最大化和禁止窗口拉伸的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:PyQt5笔记之弹出窗口大全PyQt5创建一个新窗口的...
  • QT窗体初始最大化

    千次阅读 2017-03-06 17:19:50
    转自:... QT 中有一个void QWidget::setWindowState ( Qt::WindowStateswindowState)这样的函数, 通过它可以设置窗体的初始状态,Qt::WindowStates 一共有下面几种状态: Co
  • Qt设置最大化最小化和关闭

    千次阅读 2018-12-19 16:39:56
    如果继承QWidget,那么就有关闭,最大化,最小化三个按钮,如何个性化定制这三个按钮呢,解决方案是void setWindowFlags ( Qt::WindowFlags type ) setWindowFlags ( Qt::WindowFlags type ) Qt::FrameWindowHint://...
  • Qt显示子窗口最大化、最小化、关闭

    千次阅读 2019-08-19 16:01:09
    // 使能窗口的最小化、最大化、关闭 按钮 Qt::WindowFlags flags = Qt::Dialog; flags = flags | Qt::WindowMinimizeButtonHint | Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint; setWindowFlags...
  • QT设置默认最大化窗口

    千次阅读 2020-12-14 22:30:11
    qt 5.12.7 在Qt designer里的控件属性中没有找到相应的属性,需要通过代码实现,修改main.cpp int main(int argc, char *argv[]) { QApplication a(argc, argv); MyWindow w;... //隐藏最大化
  • ~ Qt::WindowMinMaxButtonsHint); setWindowFlags(windowFlags() &~ Qt::WindowCloseButtonHint); //Qt::WindowCloseButtonHint其实是一个值 0x00080000 这里的“&~”是取反以后再按位与的意思,下面的...
  • 1. 隐藏标题栏: 隐藏标题栏后,最大化、最小化、关闭按钮 就相当于隐藏了。 main_gui_window w; w.setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint); w.show(); 或者在构造函数里设置 this->...
  • 最近使用QT做项目时遇到了一个问题,就是QT无边框窗口最大化时会遮盖Windows的任务栏及引起其他UI显示问题(我的环境是Win10,之前使用Win7时没遇到),于是去找度娘,看了几个网友写的文章,都提到了下述接口: ...
  • qt最小化窗口之后,再次最大化窗口窗口会出现卡死的情况 方法一:拦截event事件,处理这个事件 bool LiveClientMainWidget::event(QEvent *event) { qDebug() &lt;&lt; "bool ...
  • 1.界面最大化 2.界面去掉标题栏 3.显示界面 4.显示界面的时候重新设置界面里面控件的大小 代码如下: maxPicShowForm.setWindowState(Qt::WindowMaximized);//界面最大化 maxPicShowForm.setWindowFlag(Qt::...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,024
精华内容 3,609
关键字:

qt窗口最大化