`
qimo601
  • 浏览: 3446065 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

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

    博客分类:
  • Qt
阅读更多

 

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

 

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

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

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

  1. #include "mainwindow.h"  
  2. #include <QTextEdit>  
  3. #include <QDockWidget>  
  4. MainWindow::MainWindow(QWidget *parent)  
  5.     : QMainWindow(parent)  
  6. {  
  7.     //设置主窗口  
  8.     setWindowTitle(tr("DockWindwos"));  
  9.     QTextEdit *te=new QTextEdit(this);  
  10.     te->setText(tr("Main Window"));  
  11.     te->setAlignment(Qt::AlignCenter);  
  12.     setCentralWidget(te);  
  13.     //设置停靠窗口1  
  14.     QDockWidget *dock=new QDockWidget(tr("DockWindow1"),this);  
  15.     dock->setFeatures(QDockWidget::DockWidgetMovable);  
  16.     dock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);  
  17.     QTextEdit *te1=new QTextEdit();  
  18.     te1->setText(tr("Window1,The dock widget can be moved between docks by the user"));  
  19.     dock->setWidget(te1);  
  20.     addDockWidget(Qt::RightDockWidgetArea,dock);  
  21.     //设置停靠窗口2  
  22.     dock=new QDockWidget(tr("DockWindow2"),this);  
  23.     dock->setFeatures(QDockWidget::DockWidgetClosable|QDockWidget::DockWidgetFloatable);  
  24.     QTextEdit *te2=new QTextEdit();  
  25.     te2->setText(tr("Window2,The dock widget can floated and can be closed"));  
  26.     dock->setWidget(te2);  
  27.     addDockWidget(Qt::RightDockWidgetArea,dock);  
  28.     //设置停靠窗口3  
  29.     dock=new QDockWidget(tr("DockWindow3"),this);  
  30.     dock->setFeatures(QDockWidget::AllDockWidgetFeatures);  
  31.     QTextEdit *te3=new QTextEdit();  
  32.     te3->setText(tr("Window3,The dock widget can be closed, moved and floated"));  
  33.     dock->setWidget(te3);  
  34.     addDockWidget(Qt::RightDockWidgetArea,dock);  
  35. }  
  36.   
  37. MainWindow::~MainWindow()  
  38. {  
  39.   
  40. }  



 

 

解析:

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

 

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

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

 


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

dock->setFeatures(QDockWidget::DockWidgetMovable);

 

设置停靠窗体特性:

×可关闭:有一个关闭按钮

×可移动:


将DockWindow移动到左边了。

×可浮动:


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

×其他参数:

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

 

3.将TextEdit加入停靠窗体

dock->setWidget(te1);

 

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

addDockWidget(Qt::RightDockWidgetArea,dock);

 

最后编译运行:


分享到:
评论

相关推荐

    QT侧靠停靠窗口示例。

    QDockWidget允许你在主窗口中创建可停靠的浮动或固定小窗口,通常用于展示辅助信息或工具栏。要创建一个QDockWidget,你需要定义一个QWidget作为内容区域,然后将其封装到QDockWidget中。 ```cpp QWidget *...

    QT4.6 ToolBar浮动停靠,窗口全屏显示

    开发者使用`setWidget()`方法将`QToolBar`实例放入`QDockWidget`中,这样工具栏就可以像其他窗口部件一样进行浮动和停靠操作。 实现`QToolBar`在`QDockWidget`中的浮动和停靠,你需要以下步骤: 1. 创建`QToolBar`...

    Qt实现VS右侧抽屉样式(VS里右侧停靠板)

    首先,QMainWindow是Qt中用于创建复杂用户界面的主要类,它提供了菜单栏、工具栏和状态栏的集成,并允许添加自定义的 dock widgets。QDockWidget则是一个可以停靠在QMainWindow边缘或浮动为独立窗口的小部件。在这个...

    类似于Visual Studio的可停靠、可隐藏、抽屉状态Qt控件框架

    3. **工具栏和菜单栏**:使用QToolBar和QMenuBar可以创建应用程序的顶部菜单和工具栏,它们可以与DockWidgets协同工作,提供操作快捷方式。 4. **事件处理**:我们需要捕获和处理鼠标和键盘事件,以实现DockWidget...

    qt案例(四)桌面靠边停靠效果

    QDockWidget *dock = new QDockWidget("停靠窗口", this); ``` 2. **设置停靠策略**:通过调用QDockWidget的setFeatures()函数,可以设置停靠窗口的特性,包括是否允许用户关闭、浮动或停靠。例如,允许所有操作...

    Qt例程源代码QDockWidget.7z

    QDockWidget类是Qt GUI编程中的关键部分,它允许用户将特定的子窗口或小部件(如工具栏、侧边栏或者文档区域)在主窗口的四周自由停靠,也可以将其拖放到屏幕的任意位置作为一个独立的浮动窗口。QDockWidget提供了...

    Qt QDockWidget、QtreeWidget界面实现

    QDockWidget是Qt提供的一种功能强大的组件,它允许我们创建浮动或停靠的工具面板,这对于那些需要灵活布局和多面板工作的应用程序尤其有用。而QTreeWidget则是一个用于展示层次化数据的控件,常用于文件系统浏览、...

    QDockWidget.7z

    总的来说,`QDockWidget`是构建具有专业级用户界面的Qt应用的重要工具,通过理解和熟练使用`QDockWidget`,开发者可以创建出更加直观、用户友好的多窗口应用。提供的压缩包“QDockWidget.7z”可能包含实践案例和...

    QT简单停靠栏,简单效果

    在QT中,停靠栏允许用户自定义工作区,将各种小部件(如工具栏、面板等)停靠在窗口的边缘或者浮动独立出来。停靠栏可以停靠在窗口的顶部、底部、左侧或右侧,并且可以通过拖放操作进行重新排列。在QT4.5.3版本中,...

    可停靠对话框

    本话题将深入探讨如何利用工具栏(Toolbar)创建这种可停靠的Dialogue,并分享相关知识点。 首先,对话框(Dialogue)是应用程序中用于与用户进行交互的一种窗口,通常用来显示额外的信息或接收用户的输入。在传统...

    福优林@Qt5小白变大牛初级篇word---第6章.pdf

    Dock部件常被称为停靠窗口可以停靠在中心部件的四周,像工具箱一样。 一个窗口可以拥有多个Dock部件。 (5).状态栏(QStatusBar) 状态栏用于显示程序的一些状态信息,在主窗口的最底部。 一个窗口只能拥有一个状态栏...

    dock的停靠拖动隐藏

    在实现"Dock的停靠拖动隐藏"功能时,我们需要使用Qt提供的QMainWindow类,它是大多数Qt GUI应用的基础,因为它包含了菜单栏、工具栏和Dock Widgets等功能。QMainWindow有一个内置的布局系统,允许我们轻松地添加和...

    Qt-Advanced-Docking-System

    在Qt库中,`QDockWidget`是一个基本的停靠部件类,它允许用户将窗口部件(如工具栏、侧边栏或文档窗口)停靠到主窗口的边缘,或者浮动为独立的小窗口。然而,对于更复杂和自定义的停靠需求,`QDockWidget`可能显得...

    QDockLayout.rar

    1. **创建QMainWindow**:IDE的基础通常是QMainWindow,因为它提供了菜单栏、工具栏和状态栏的基础框架,同时支持添加QDockWidget。 2. **创建QDockWidgets**:为各个功能区域(如代码编辑器、项目浏览器、输出窗口...

    kddockwidgets 使用简单demo

    1. **MainWindow.cpp/h**:这是主窗口的实现和声明,通常包含了应用的主要逻辑,如初始化界面、设置菜单和工具栏,以及处理用户交互事件。MainWindow会包含对kddockwidgets的使用,例如创建和管理各种停靠窗口。 2....

    窗口主框架

    `addToolBar()`方法可以用来动态添加工具栏,`setCentralWidget()`用于设置中心区域的组件,而`QDockWidget`则可以用来创建可停靠的侧边栏。 下面我们将更深入地探讨Qt界面开发中的关键知识点: 1. **信号与槽机制...

    获取qt窗口信息的demo

    QMenuBar和QToolBar,用于构建菜单栏和工具栏;还有QStatusBar,用于显示窗口底部的状态信息。这些控件同样包含有各自的属性和方法,可用于获取和设置它们的信息。 通过这个"获取qt窗口信息的demo",开发者可以深入...

    QT\linux窗口程序设计-实例分析

    5. **Dock Widgets**:QDockWidget允许你在窗口内创建可停靠的区域,可以用来承载其他控件或小部件。用户可以自由地将这些Dock Widgets拖放到窗口的不同位置,或者选择隐藏它们。 6. **中央部件**:QMainWindow有一...

    Qt-Advanced-Docking-System-master

    停靠系统允许用户自定义窗口布局,将小部件(如工具栏、面板或文档窗口)停靠在主窗口的边缘,或者作为浮动窗口独立显示。这种灵活性极大地提高了用户的工作效率,尤其在多任务处理和数据可视化场景下。 三、Qt ...

    QtMainWindow

    这个类提供了丰富的功能,包括菜单栏、工具栏、状态栏、窗口分割、窗口浮动和停靠,以及自定义布局和窗口风格等。本文将深入探讨这些知识点,并提供入门指导。 **1. 菜单栏(Menu Bar)** 菜单栏通常位于窗口顶部,...

Global site tag (gtag.js) - Google Analytics