首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【转】QDockWidget 停泊窗口和工具栏

2012-09-01 
【转】QDockWidget 停靠窗口和工具栏?转:http://blog.csdn.net/a649518776/article/details/6636490?下面用

【转】QDockWidget 停靠窗口和工具栏

?

转:http://blog.csdn.net/a649518776/article/details/6636490

【转】QDockWidget 停泊窗口和工具栏

?

下面用代码实现上面窗口的设计:

1.建立项目时基类选择QMainWindow,取消Gernerate form复选框的选中状态。

2.在源文件mainwindow.cpp中编写如下代码:

  • #include?"mainwindow.h"??
  • #include?<QTextEdit>??
  • #include?<QDockWidget>??
  • MainWindow::MainWindow(QWidget?*parent)??
  • ????:?QMainWindow(parent)??
  • {??
  • ????//设置主窗口??
  • ????setWindowTitle(tr("DockWindwos"));??
  • ????QTextEdit?*te=new?QTextEdit(this);??
  • ????te->setText(tr("Main?Window"));??
  • ????te->setAlignment(Qt::AlignCenter);??
  • ????setCentralWidget(te);??
  • ????//设置停靠窗口1??
  • ????QDockWidget?*dock=new?QDockWidget(tr("DockWindow1"),this);??
  • ????dock->setFeatures(QDockWidget::DockWidgetMovable);??
  • ????dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);??
  • ????QTextEdit?*te1=new?QTextEdit();??
  • ????te1->setText(tr("Window1,The?dock?widget?can?be?moved?between?docks?by?the?user"));??
  • ????dock->setWidget(te1);??
  • ????addDockWidget(Qt::RightDockWidgetArea,dock);??
  • ????//设置停靠窗口2??
  • ????dock=new?QDockWidget(tr("DockWindow2"),this);??
  • ????dock->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable);??
  • ????QTextEdit?*te2=new?QTextEdit();??
  • ????te2->setText(tr("Window2,The?dock?widget?can?floated?and?can?be?closed"));??
  • ????dock->setWidget(te2);??
  • ????addDockWidget(Qt::RightDockWidgetArea,dock);??
  • ????//设置停靠窗口3??
  • ????dock=new?QDockWidget(tr("DockWindow3"),this);??
  • ????dock->setFeatures(QDockWidget::AllDockWidgetFeatures);??
  • ????QTextEdit?*te3=new?QTextEdit();??
  • ????te3->setText(tr("Window3,The?dock?widget?can?be?closed,?moved?and?floated"));??
  • ????dock->setWidget(te3);??
  • ????addDockWidget(Qt::RightDockWidgetArea,dock);??
  • }??
  • ??
  • MainWindow::~MainWindow()??
  • {??
  • ??
  • }??



    ?

    ?

    解析:

    1.创建一个QDockWidget对象的停靠窗体:

    ?

    QDockWidget?*dock=new?QDockWidget(tr("DockWindow1"),this);

    第一个参数是停靠窗体的名称,第二个参数是停靠窗体的父窗体。

    ?


    2.设置此停靠窗体的属性:

    dock->setFeatures(QDockWidget::DockWidgetMovable);

    ?

    设置停靠窗体特性:

    ×可关闭:【转】QDockWidget 停泊窗口和工具栏有一个关闭按钮

    ×可移动:

    【转】QDockWidget 停泊窗口和工具栏

    将DockWindow移动到左边了。

    ×可浮动:

    【转】QDockWidget 停泊窗口和工具栏

    DockWindow3可以单独脱离主窗口浮动出来。

    ×其他参数:

    QDockWidget::AllDockWidgetFeatures //拥有所有属性
    QDockWidget::NoDockWidgetFeatures //不可移动,不可关闭,不可浮动

    ?

    3.将TextEdit加入停靠窗体

    dock->setWidget(te1);

    ?

    4.将停靠窗体加入主窗体中

    addDockWidget(Qt::RightDockWidgetArea,dock);

    ?

    最后编译运行:

    【转】QDockWidget 停泊窗口和工具栏

  • 热点排行