四联光电智能照明论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2134|回复: 0
打印 上一主题 下一主题

Qt调整初始窗口大小

[复制链接]
  • TA的每日心情
    开心
    2018-7-4 09:03
  • 126

    主题

    439

    帖子

    6750

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6750
    跳转到指定楼层
    楼主
    发表于 2016-11-30 09:08:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


    我们用qt创建一个窗口,先后显示它,代码如下:
    class Mywindow : public QMainWindow

    {
       .....
    }


    int main( int argc, char** argv )
    {
      QApplication app( argc, argv );
      Mywindow wind;
       wind.show();
      return app.exec();

    }
    发现窗口很小,查看它的方法,以及他的父类widget的方法,发现有个方法像是设置其初始大小的,setBaseSize,调用这个方法
    setBaseSize( 800, 600 );
    运行程序,发现一点效果都没有。
    注意我这里并没有使用setFixedSize  setMaximumSize,因为虽然这些方法能够设置初始大小,但是之后就不能用鼠标调整窗口大小了。
    后来baidu发现有人用重载
    QSize sizeHint() const
    的方式来实现。这个函数是QWidget的一个虚函数。

    This property holds the recommended size for the widget.
    If the value of this property is an invalid size, no size is recommended.
    The default implementation of sizeHint() returns an invalid size if there is no layout for this widget, and returns the layout's preferred size otherwise.
    virtual QSize sizeHint () const
    QSize Mywindow::sizeHint() const
    {
         return QSize( 800, 600 );
    }
    这样就可以设置窗口的大小伪800x600了。
    后来发现还有一个方法就是  resize。在构造函数中直接调用他设置大小就可以。如:
    this->resize( QSize( 800, 600 ));
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|Silian Lighting+ ( 蜀ICP备14004521号-1 )

    GMT+8, 2024-5-15 16:09 , Processed in 1.046875 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表