ubuntu+Qt实现vs界面布局

第一步:准备工作。

1.1、一台安装了ubuntu1404以上版本系统的电脑(包含ubuntu1404)。

1.2、在ubuntu上安装Qt Creator(我的版本是Qt5.2.1)。

第二步:在Qt上实现vs界面布局。

2.1、打开Qt Creator,新建一个名字为Layout的工程

ubuntu+Qt实现vs界面布局_第1张图片

2.2 接着展开Forms标签,此时会看到一个MainWindow.ui文件

ubuntu+Qt实现vs界面布局_第2张图片

双击MainWindow.ui文件打开界面布局,往界面拖四个QDockWidget,WindowTitle分别命名为左栏、右栏、左下栏和右下栏

并分别在每个栏上放置一个QTextEdit

ubuntu+Qt实现vs界面布局_第3张图片第三步:用代码实现vs布局,在每个栏可以自由在界面放置

31 在MianWindow的构造函数添加一下代码

 this->setWindowFlags(this->windowFlags() & ~Qt::WindowMinMaxButtonsHint);
    //让BottomLeftCorner区域归属于LeftDockWidgetArea区域
    this->setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea);
    this->setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea);
    int iType = 1;
    if (iType == 1) //布局1
    {
        this->addDockWidget(Qt::RightDockWidgetArea, ui->dwLeft);
        this->splitDockWidget(ui->dwLeft, ui->dwRight, Qt::Horizontal);
        this->addDockWidget(Qt::BottomDockWidgetArea, ui->dwBottomLeft);
        this->tabifyDockWidget(ui->dwBottomLeft, ui->dwBottomRight);
        ui->dwBottomLeft->raise();//把QDockWidget做成tab,默认项目设置a
    }
    else if (iType == 2) //布局2
    {
        this->addDockWidget(Qt::RightDockWidgetArea, ui->dwLeft);
        this->splitDockWidget(ui->dwLeft, ui->dwRight, Qt::Horizontal);
        this->addDockWidget(Qt::BottomDockWidgetArea, ui->dwBottomLeft);
        this->splitDockWidget(ui->dwBottomLeft, ui->dwBottomRight, Qt::Horizontal);
    }
    else if (iType == 3) //布局3
    {
        this->addDockWidget(Qt::LeftDockWidgetArea, ui->dwLeft);
        this->addDockWidget(Qt::RightDockWidgetArea, ui->dwRight);
        this->addDockWidget(Qt::BottomDockWidgetArea, ui->dwBottomLeft);
        this->splitDockWidget(ui->dwBottomLeft, ui->dwBottomRight, Qt::Horizontal);
    }

3.1.1 布局1的运行效果图

ubuntu+Qt实现vs界面布局_第4张图片

3.1.2 布局2的运行效果图

ubuntu+Qt实现vs界面布局_第5张图片

3.1.3 布局3的运行效果图

ubuntu+Qt实现vs界面布局_第6张图片

以上三种布局只是初始布局,程序运行以来后,用户可以任意拖动,放置自己喜欢的布局。

你可能感兴趣的:(技术总结)