QT界面布局——停靠窗口QDockWidget+分割窗口QSplitter+堆叠窗口QSt。。。

更新时间:2023-07-07 04:24:47 阅读: 评论:0

QT界⾯布局——停靠窗⼝QDockWidget+分割窗⼝
QSplitter+堆叠窗⼝QSt。。。
irig窗⼝的基本布局如下
1、分割窗⼝ QSplitter
//分割窗⼝使⽤QSplitter类
QSplitter *splitterMain =new QSplitter(Qt::Horizontal,0);                    // 对窗⼝进⾏⽔平分割,0代表有分割的窗⼝为主窗⼝,也可以选择要分割的窗⼝
QTextEdit *textLeft =new QTextEdit(QObject::tr("Left Widget"), splitterMain); // 将控件插⼊主分割窗⼝中,
注意如果这样插⼊每个控件都会是⼀个窗⼝怎样学习好
textLeft->tAlignment(Qt::AlignCenter);                                      // 设置⽂本的对齐⽅式
//右部分分割窗⼝
QSplitter *splitterRight =new QSplitter(Qt::Vertical,splitterMain);          // 对分割窗⼝再进⾏分割
splitterRight->tOpaqueResize(fal);                                        // 分割条是否实时更新,fal为拖拽完更新,true为实时更新
QTextEdit *textUp =new QTextEdit(QObject::tr("Top Widget"), splitterRight);
textUp->tAlignment(Qt::AlignCenter);
QTextEdit *textBottom =new QTextEdit(QObject::tr("Bottom Widget"), splitterRight);
textBottom->tAlignment(Qt::AlignCenter);
splitterMain->tStretchFactor(1,1);                                        // 设定可伸缩控件,第⼀个参数是指定设置第⼏个控件,从0开始,第⼆个参数感觉是伸缩幅度吧(为⼤splitterMain->tWindowTitle(QObj
ect::tr("Splitter"));
splitterMain->show();
⽂本对齐⽅式
Qt::AlignLeft    // 左对齐
Qt::AlignRight  // 右对齐
Qt::AlignCenter  // ⽂字居中
Qt::AlignUp      // ⽂字与顶端对齐
2、堆叠窗⼝ QStackedWidget
⽅式⼀:QStackedWidget 类
tWindowTitle(tr("StackedWidget"));          // 设置窗⼝标题
list =new QListWidget(this);                  // 新建⼀个QListWidget控件对象
/
勺子 英文
/在新建的QListWidget控件中插⼊三个条⽬,作为选择项
list->inrtItem(0,tr("Window1"));
list->inrtItem(1,tr("Window2"));
list->inrtItem(2,tr("Window3"));
//创建三个QLabel标签控件对象,作为堆栈窗⼝需要显⽰的三层窗体
label1 =new QLabel(tr("WindowTest1"));
label2 =new QLabel(tr("WindowTest2"));
label3 =new QLabel(tr("WindowTest3"));
stack =new QStackedWidget(this);
//新建⼀个QStackedWidget堆栈窗体对象
//将创建的三个QLabel标签控件依次插⼊堆栈窗体中
stack->addWidget(label1);
stack->addWidget(label2);
stack->addWidget(label3);
QHBoxLayout *mainLayout =new QHBoxLayout(this);
//对整个对话框进⾏布局
mainLayout->tMargin(5);                    // 设定对话框(或窗体)的边距为5
mainLayout->tSpacing(5);                  // 设定各个控件之间的间距为5
mainLayout->addWidget(list);
mainLayout->addWidget(stack,0,Qt::AlignHCenter);
mainLayout->tStretchFactor(list,1);        // 测试后感觉,第⼆个参数⼤于0为可伸缩控件,1表⽰⽐例为1份,对于stack为1/3宽度
mainLayout->tStretchFactor(stack,3);
connect(list,SIGNAL(currentRowChanged(int)),stack,SLOT(tCurrentIndex(int)));
meggings
// 将QListWidget的currentRowChanged信号与QStackedWidget的tCurrentIndex槽函数相连,tCurrentIndex的index按插⼊顺序从0开始,与QListWidget的条⽬顺⽅式⼆:QMidArea类和QMdiSubWindow类 多重⽂档界⾯设置堆叠 cascadeSubWindows()
brute
详细请看 本博主其他⽂章 QMidArea类和QMdiSubWindow类的⽤法
3、停靠窗⼝
QTextEdit *te=new QTextEdit(this);  //定义⼀个QTextEdit对象作为主窗⼝
te->tText(tr("Main Window"));
te->tAlignment(Qt::AlignCenter);
中国合伙人 票房tCentralWidget(te);              //将此编辑框设为主窗⼝的中央窗体
//停靠窗⼝1
QDockWidget *dock=new QDockWidget(tr("DockWindow1"),this);
//可移动
dock->tFeatures(QDockWidget::DockWidgetMovable);
dock->tAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
QTextEdit *te1 =new QTextEdit();
te1->tText(tr("Window1"));
dock->tWidget(te1);
addDockWidget(Qt::RightDockWidgetArea,dock);
challot//停靠窗⼝2
dock=new QDockWidget(tr("DockWindow2"),this);
dock->tFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable); //可关闭、可浮动
QTextEdit *te2 =new QTextEdit();
te2->tText(tr("Window2"));
dock->tWidget(te2);
addDockWidget(Qt::RightDockWidgetArea,dock);
//停靠窗⼝3
dock=new QDockWidget(tr("DockWindow3"),this);
dock->tFeatures(QDockWidget::AllDockWidgetFeatures);  //全部特性
QTextEdit *te3 =new QTextEdit();
te3->tText(tr("Window3"));
dock->tWidget(te3);
addDockWidget(Qt::RightDockWidgetArea,dock);
electrician停靠窗⼝主要有两⼤属性:
1、tFeatures()⽅法设置停靠特性Qt::DockWidgetFeatures
QDockWidget::DockWidgetClosable        // 可关闭
QDockWidget::DockWidgetMovable        // 可移动
QDockWidget::DockWidgetFloatable      // 可浮动
可能英文QDockWidget::AllDockWidgetFeatures    // 拥有以上所有特性QDockWidget::NoDockWidgetFeatures      // 不可关闭、不可移动、不可浮动
2、tAllowedAreas()⽅法设置停靠区域
anna chapmanQt::LeftDockWidgetArea    // 可在左边停靠
Qt::RightDockWidgetArea    // 可在右边停靠
Qt::TopDockWidgetArea      // 可在上边停靠
Qt::BottomDockWidgetArea  // 可在下边停靠
Qt::AllDockWidgetArea      // 可在以上四个部位停靠
Qt::NoDockWidgetArea      // 只可停靠在插⼊处

本文发布于:2023-07-07 04:24:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/169584.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:控件   设置   分割   对象   堆栈   停靠
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图