Qt动态布局,多个窗口使用同一个widget如何实

Qt动态布局,多个窗口使用同一个widget如何实,第1张

首先我们在界面中添加一个QLabel控件

在控件上边下边分别添加一个竖直的d簧,选中这三个控件,然后点击竖直布局,如下图所示。布局结果如右图。

然后在上次布局的两侧添加水平的d簧,选中两个d簧和上次的布局,点击水平布局。布局效果如图

最后选中最外层的窗口,然后点击水平或竖直布局,进行整体布局

布局效果如下图,现在可以运行一下,然后拖动界面改变大小来试一下效果了。

原因是那个mainWindow本身就具有Layout了,这个Layout包含了顶部的菜单栏、工具栏,中部的centralWidget和底部的状态栏。

所以你不能再给mainwindow添加QVBoxLayout了,你只能给centralWidget添加layout。

只要将setLayout(mainLayout)

这一句改成:

this->centralWidget()->setLayout(mainLayout)就行了。

改过之后:

MainWindow::MainWindow(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::MainWindow)

{

ui->setupUi(this)

QVBoxLayout *mainLayout = new QVBoxLayout

Title = new QLabel(tr("校园导航系统"),this)

Title->resize(550,100)

Title->setAlignment(Qt::AlignCenter)

Title->setStyleSheet("background-color:redfont-size:40pxcolor:blue")

Greeting = new QLabel(tr("Welcome"),this)

Greeting->resize(550,100)

Greeting->setStyleSheet("background-color:yellowfont-size:20pxcolor:blue")

mainLayout->addWidget(Title)

mainLayout->addWidget(Greeting)

this->centralWidget()->setLayout(mainLayout)

//++++++++

setWindowTitle(tr("校园导航系统"))

resize(550,600)

}

VB2011将VB6的通用对话框控件分解成为OpenFileDialog、SaveFileDialog、ColorDialog 和 FontDialog 组件处理文件、颜色和字体,直接在工具箱面板上找到对应组件,双击加入窗体,即可使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11837066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存