您的位置:首页 > 编程语言 > Qt开发

关于Qt窗口部件自适应大小设计(随窗户大小改变)

2017-04-18 11:46 337 查看
首先得创建一个QWidget部件,并且定义两个全局变量用来保存长和宽mWidth和mHeight,这两个数值就是随窗口改变而改变的数值

接着别忘记在构建函数内使用setCentralWidget,当然如果不设置也可以实现只需要将下面resizeEvent中的

mHeight = sceneWidget.height();  mWidth = sceneWidget.width();改为如下:
mWidth = ui->centralWidget->width(), mHeight = ui->centralWidget->height();也可实现获取


然后重写resizeEvent事件,并在其中写上想随窗口变化部件的设置代码。

例如,下列代码中的mainToolBar部件就可实时改变(如有不妥之处,敬请留言或者邮件1258137325@qq.com)


=====xxx.h=====

public:

explicit MainWindow(QWidget *parent = 0);

~MainWindow();

void resizeEvent(QResizeEvent *event);

private:

Ui::MainWindow *ui;

QWidget sceneWidget;

int mWidth;

int mHeight;

=====xxx.cpp======

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setCentralWidget(&sceneWidget);
...
...

}

void MainWindow::resizeEvent(QResizeEvent *event){
QMainWindow::resizeEvent(event);
mHeight = sceneWidget.height();
mWidth = sceneWidget.width();
ui->mainToolBar->setGeometry(0,0,mHeight/10,mWidth/10);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息