Qt 布局管理之分割窗口

使用QSplitter进行窗口分割,使用 Horizontal 创建水平的分割窗口textleft 创建一个子分割窗口splitterRight 放在进去默认就会到右侧,这里继续设置一下setOpaqueResize函数设置右侧的拖拽不刷新只显示一个粗线条,
在这个右侧的子分割窗口中添加两个textEidt分别处于上下两个窗口 然后在主窗口中设置了右侧的两个子窗口为可伸缩控件。

#include<QFont>
#include<QSplitter>
#include <QApplication>
#include<QTextEdit>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QFont font("ZYSong18030",12);
a.setFont(font);
//主窗口分割
QSplitter *splitterMain = new QSplitter(Qt::Horizontal,0);
//左部分割窗口
QTextEdit *textLeft = new QTextEdit(QObject::tr("Left Widget"),splitterMain);
textLeft->setAlignment(Qt::AlignCenter);
//右部分割窗口
QSplitter *splitterRight = new QSplitter(Qt::Vertical,splitterMain);
splitterRight->setOpaqueResize(false);
//setOpaqueResize 设定分割窗口的分割条在拖曳时是否为实时更新显示,
//若设为true则实时更新显示,若设为false则在拖曳时只显示一条灰色的粗线条,
//在拖曳到位并释放鼠标后再显示分割条。默认设置为true
//splitterRight 中的up
QTextEdit*textUp = new QTextEdit(QObject::tr("Top widget"),splitterRight);
textUp->setAlignment(Qt::AlignCenter);
//splitterRight 中的bottom
QTextEdit *textBottom = new QTextEdit(QObject::tr("Bottom Widget"),splitterRight);
textBottom->setAlignment(Qt::AlignCenter);
splitterMain->setStretchFactor(1,1);
//调用setStretchFactor()方法用于设定可伸缩控件,
//它的第1个参数用于指定设置的控件序号,控件序号按插入的先后次序从0起依次编号;
//第2个参数为大于0的值,表示此控件为可伸缩控件。此实例中设定右部分分割窗口为可伸缩控件,
//当整个对话框的宽度发生改变时,左部的文件编辑框宽度保持不变,右部的分割窗口宽度随整个对话框大小的改变进行调整。
splitterMain->setWindowTitle(QObject::tr("Splitter"));
splitterMain->show();
return a.exec();
}

有图有真相

posted @   simp00  阅读(1316)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示