52-QSplitter类&QDockWidget类

一 QSplitter类

Qt提供QSplitter(QSplitter)类来进行分裂布局,QSplitter派生于QFrame。

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
};
#endif // MAINWINDOW_H



//

#include "mainwindow.h"

#include <QSplitter>
#include <QTextEdit>


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    // 1:拆分窗口(分割窗口、分裂窗口布局)
    QSplitter *spMainWindow=new QSplitter(Qt::Horizontal,0);
    QTextEdit *txteditmain=new QTextEdit("左边主窗口",spMainWindow);

    // 2:拆分右边部分窗口
    QSplitter *spRight=new QSplitter(Qt::Vertical,spMainWindow);
    QTextEdit *txteditup=new QTextEdit("右边上部分窗口",spRight);
    QTextEdit *txteditdown=new QTextEdit("右边下部分窗口",spRight);

    // 3:
    QSplitter *sptest=new QSplitter(Qt::Vertical,spRight);
    QTextEdit *txtedittest=new QTextEdit("零声教育-Qt开发工程师课程",sptest);

    // 4:
    QSplitter *sptestend=new QSplitter(Qt::Horizontal,spMainWindow);
    QTextEdit *txtedittestend=new QTextEdit("Qt开发工程师课程--Vico老师",sptestend);

    spMainWindow->setWindowTitle("Splitter类拆分窗口测试");
    spMainWindow->show();

}

MainWindow::~MainWindow()
{
}

 

二、QDockWidget 类(停靠窗口)

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public:
    void DockWidgetFunc();

};
#endif // MAINWINDOW_H



#include "mainwindow.h"


#include <QTextEdit>
#include <QDockWidget>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{

    DockWidgetFunc();

}

MainWindow::~MainWindow()
{
}


void MainWindow::DockWidgetFunc()
{
    setWindowTitle("QDockWidget类停靠窗口测试.");

    QTextEdit *tedit=new QTextEdit(this); // 定义QTextEdit对象作为主窗口
    tedit->setText("国防科技大学,中南大学,湖南大学,湖南师范大学");
    tedit->setAlignment(Qt::AlignCenter);
    setCentralWidget(tedit); //将编辑框控件设置为主窗口的中央窗体

    // 创建停靠窗口1
    QDockWidget *dw1=new QDockWidget("停靠窗口(一)",this);
    dw1->setFeatures(QDockWidget::DockWidgetMovable); // 可移动特性
    dw1->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);

    QTextEdit *qtedit1=new QTextEdit();
    qtedit1->setText("浙江大学");
    dw1->setWidget(qtedit1);
    addDockWidget(Qt::RightDockWidgetArea,dw1);


    // 创建停靠窗口2
    QDockWidget *dw2=new QDockWidget("停靠窗口(二)",this);
    dw2->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable); // 关闭 浮动

    QTextEdit *qtedit2=new QTextEdit();
    qtedit2->setText("复旦大学");
    dw2->setWidget(qtedit2);
    addDockWidget(Qt::RightDockWidgetArea,dw2);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值