qt中设置窗体大小

删除回忆录丶 提交于 2020-08-17 16:01:26

 在我们的编程中,我们有时候会想让我们的程序窗体固定大小,而该大小是我们在编辑时的大小。

经过我的摸索,和查阅资料。找到了一个方法。其实也很简单。其实也就是先找到该窗体的物理大小。

然后设置固定窗体的大小即可,核心代码如下:

  1. loginDialog::loginDialog(QWidget *parent) :
  2.     QDialog(parent),
  3.     ui(new Ui::loginDialog)
  4. {
  5.     ui->setupUi(this);
  6.     int width = this->geometry().width();
  7.     int height = this->geometry().height();
  8.     this->setFixedSize(width,height); //设置窗体固定大小
  9. }

用Qt创建一个窗口,如何调整窗口的大小呢?

1.setBaseSize(),调用这个方法

1

setBaseSize( 800, 600 );

运行程序,发现一点效果都没有。

注意我这里并没有使用setFixedSize setMaximumSize,因为虽然这些方法能够设置初始大小,但是之后就不能用鼠标调整窗口大小了。

 

2.用重载QSize sizeHint() const

的方式来实现。这个函数是QWidget的一个虚函数。如下:

1

2

3

4

5

6

virtual QSize sizeHint () const

 

QSize Mywindow::sizeHint() const

{

return QSize( 800, 600 );

}

这样就可以设置窗口的大小伪800x600了。

3.后来发现还有一个方法就是 resize。在构造函数中直接调用他设置大小就可以。如:

 

1

this->resize( QSize( 800, 600 ));

在Qt中控制窗口大小控制窗口大小常用的函数:

1

2

3

4

5

6

7

8

void setMinimumSize ( const QSize & )

virtual void setMinimumSize ( int minw, int minh )

void setMaximumSize ( const QSize & )

virtual void setMaximumSize ( int maxw, int maxh )

void setMinimumWidth ( int minw )

void setMinimumHeight ( int minh )

void setMaximumWidth ( int maxw )

void setMaximumHeight ( int maxh )

 

 

注意:在控制主窗体部件的大小时,有时候达不到效果,可以试试先设置好子窗体

部件的大小,然后再设置主窗体部件大小。
例如:
    用QMainWindow创建了一个窗体,然后设置其最小显示大小为setMinimumSize (450, 600 );但是该主窗体中还包含其它子窗体部件,例如包含一个QTextEdit,那么要先设置其最小大小为setMinimumSize ( 450, 600 );那么就达到了,整个窗体最小只能是宽450像素,高600像素。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!