qt中设置窗体大小
在我们的编程中,我们有时候会想让我们的程序窗体固定大小,而该大小是我们在编辑时的大小。
经过我的摸索,和查阅资料。找到了一个方法。其实也很简单。其实也就是先找到该窗体的物理大小。
然后设置固定窗体的大小即可,核心代码如下:
- loginDialog::loginDialog(QWidget *parent) :
- QDialog(parent),
- ui(new Ui::loginDialog)
- {
- ui->setupUi(this);
- int width = this->geometry().width();
- int height = this->geometry().height();
- this->setFixedSize(width,height); //设置窗体固定大小
- }
用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像素。
相关文章
- QT-vs各个版本的编译器号对应的vs版本号
- Qt编写物联网管理平台18-数据库设置
- Qt编写地图综合应用26-覆盖物交互
- 关于Qt程序中动态和静态的几点总结
- paip.c++ qt creator svn 设置以及使用总结.
- Qt VS2017编写纯C库以及使用Qt调用C库方法
- Qt QPixmap设置图片透明度
- Qt QSlider介绍(属性设置、信号、实现滑块移动到鼠标点击位置)
- Qt 设置QLineEdit控件不可编辑、密文输入、输入格式等小技巧
- Qt Qss 渐变颜色设置
- Qt——容器类
- qt操作json(QT 教程)
- Qt开发-QT Widgets
- 【Qt】在ubuntu上为可执行程序qt创建图标(亲测)
- Qt之QPropertyAnimation实现弹窗动画优化版
- qt 拷贝文件设置进度条
- Qt如何关闭debug信息的输出?
- QT之QPropertyAnimation简单应用
- Qt之标准对话框(文件对话框)
- Qt 判断QString中的字符串是否为纯数字
- Ubuntu20.04下qt交叉编译报错::15: error: ‘nullptr‘ was not declared in this scope
- Qt数据库应用21-数据分组导出