Qt学习之路四——停靠窗口

停靠窗口在很多软件中都是很常见的,这里我们就手动地创建一个停靠窗口。

我们先新建一个项目,基类选择QMainWindow,取消创建图形界面。然后创建一个QTextEdit对象,作为主窗口,并且将这个编辑框作为主窗口的中央窗体。

QTextEdit *te = new QTextEdit("主窗口", this);//设置这个对象作为主窗口
te->setAlignment(Qt::AlignCenter);//设置这个TextEdit中文字的对齐方式为居中对齐
setCentralWidget(te);//将这个编辑框作为主窗口的中央窗体

接下来就是新建一个停靠窗口的对象,也就是QDockWidget对象,同时设定它的一些停靠属性和可停靠的位置。然后创建一个QTextEdit对象将其插入到停靠窗口中,并且将停靠窗口加入到主窗口中。

//新建一个停靠窗口1
QDockWidget *dock = new QDockWidget("停靠窗口1", this);
dock->setFeatures(QDockWidget::DockWidgetMovable);//设定这个停靠窗口的特性为可移动
dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);//设定这个停靠窗口的可停靠位置
QTextEdit *te1 = new QTextEdit("停靠窗口1,这个窗口可以移动");
te1->setAlignment(Qt::AlignCenter);
dock->setWidget(te1);//将文本编辑框加入停靠窗口
addDockWidget(Qt::RightDockWidgetArea,dock);//将停靠窗口加入主窗口

我们再创建一个停靠窗口2,步骤和上面一样

//新建一个停靠窗口2
dock = new QDockWidget("停靠窗口2", this);
dock->setFeatures(QDockWidget::AllDockWidgetFeatures);//设定这个停靠窗口的特性拥有所有的特性,可关闭,可移动,可浮动
dock->setAllowedAreas(Qt::RightDockWidgetArea);
QTextEdit *te2 = new QTextEdit("停靠窗口2,这个窗口可以移动,浮动,关闭");
te2->setAlignment(Qt::AlignCenter);
dock->setWidget(te2);
addDockWidget(Qt::RightDockWidgetArea, dock);

dock->setWidget()函数的作用,将控件加入到dock停靠窗口中。

addDockWidget()函数的作用是将停靠窗口加入到主窗口中,第一个参数是停靠参数的位置,第二个参数是停靠窗口对象,也就是QDockWidget对象。

然后我们编译运行,结果就是这样的。

Qt学习之路四——停靠窗口_第1张图片

因为我们设定了停靠窗口1的属性是可以移动的,但是没有设定它的其他属性,所以它不能关闭,也不能像停靠窗口2一样可以浮动。

Qt学习之路四——停靠窗口_第2张图片

你可能感兴趣的:(Qt)