Qt 给QWidget添加工具栏

在Qt中,给主窗口(QMainWindow类)添加工具栏非常方便,直接使用addToolBar 即可,如下所示:

fileToolBar = addToolBar(tr("&File"));
fileToolBar->addAction(fileNewAction);
fileToolBar->addAction(fileOpenAction);

但是,addToolBar 是QMainWindow 类的函数,在QWidget类中没有addToolBar类似的添加工具栏的函数,所以无法直接给QWidget类(QWidget的子类)添加工具栏。

能不能在QWidget类窗口中添加工具栏呢?当然可以。考虑到工具栏QToolBar其实也是QWidget的子类(class Q_GUI_EXPORT QToolBar : public QWidget ),直接把工具栏当作普通的QWidget添加到窗口中好了。一般的,工具栏处于窗口的顶部,所以,可以采取布局,将工具栏置于顶部即可。

我的例子是要创建一个可停靠的组件箱,在组件 箱上方显示相应的工具栏,如下所示:

一、 代码节选

//2.1 工具栏
  compsBoxToolBar = new QToolBar(tr("组件"),dockCompTools);
  compsBoxToolBar->setIconSize(QSize(16,16));
  compsBoxToolBar->addAction(compsNewAction);
  compsBoxToolBar->addAction(compsOpenAction);
  compsBoxToolBar->addAction(compsSaveAction);
...
  //2.2 工具箱主体
  listComp = new XCompListWidget();
...
  //2.3 文本提示框
  QLabel* lbl = new QLabel(this);
  lbl->setText(tr("组件说明:"));
  txtTipComp = new QTextEdit();
...
  //2.4 布局
  QVBoxLayout *vboxLayout1 = new QVBoxLayout();
  vboxLayout1->addWidget(compsBoxToolBar);//把工具栏作为一个widget添加到布局中
  vboxLayout1->addWidget(listComp);
  vboxLayout1->addWidget(lbl);
  vboxLayout1->addWidget(txtTipComp);
...
  //2.5 应用布局
  QWidget* dockWidgetContents = new QWidget();
  dockWidgetContents->setLayout(vboxLayout1);

二、结果展示

时间: 2024-10-13 05:05:22

Qt 给QWidget添加工具栏的相关文章

qt+VS 如何添加图片资源

熟悉qt creator,之后发现其debug能力不如vs强,随后转战 qt + vs. 发现图片资源添加不像qt那样直接添加,vs本身会生成一个qrc,我们可以直接去打开然后添加,不必在自己去添加,就想下面一样,多方便!

Qt给按钮添加图标

ui.btnTest2->setIcon(QIcon(QPixmap(":/DlgGUO/icon/qd.ico"))); 不知道是Qt帮助上面说的不清楚,还是怎么的,看不明白,好不容易找到用法,记着留用 Qt给按钮添加图标

VC++添加工具栏

VC添加工具栏 方法一:添加ICON图标 1. 新建一个基于对话框的项目:Test 2. 在类CTestDlg中, 添加两个变量: CToolBarCtrl m_ToolBar1; CImageList m_ImageList; 3.添加图标(例5个.icon图标) 4. 在#include "TestDlg.h"中 添加 #define ID_TOOLBAR1 1000 5. 在OnInitDialog()初始化: const int ARR_MAX = 5; m_ImageList

VC对话框添加工具栏

在VC对话框中添加工具栏,要分为如下几步操作. 1.在资源视图中添加toolbar类资源,在工具栏上添加按钮,并命名ID:ID_BTN1,ID_BTN2 2.对话框头文件中,添加变量CToolBar  m_ToolBar; 3.在对话框的OnInitDialogh函数中添加如下代码: // TODO: 在此添加额外的初始化代码       if( !m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE |          CB

为百度阅读web端添加工具栏——百阅栏的诞生

在一个偶然的机会,看到了百度阅读这款产品,找了几本免费的书,打开看了看,总体还不错的样子,但是由于公司电脑的屏幕比较宽,而百度阅读设置的阅读宽度是840px的固定宽度,所以看起来就比较费劲了.宽度不提供调整也就算了,连字体.字体颜色.背景色等都没有提供调整的功能,随便打开一个小说网站基本上都会提供的吧.还有可气的是不让跨页复制,一滚动鼠标,复制的东西就取消了. 看到这么多让人无法忍受的问题后,就去官网反馈,发现官网也是垃圾的不行,反馈方式只有一种--百度阅读贴吧(你妹呀!),反馈了也没人回复,所

VSTO Word2003 添加菜单栏, 添加工具栏

直接上代码了:   Microsoft.Office.Core.CommandBar menuBar; CommandBarButton ccbtn = null;        CommandBarButton btnRequirementProperty; CommandBarButton btnCancelImport; CommandBarButton btnCancelImport ; Office.CommandBarButton btn ; private void ThisAdd

VC 对话框程序添加工具栏按钮图标及其按钮tooltip

注意:本人使用VC++2010开发环境进行测试. 在使用VC开发对话框程序时不像开发单文档程序和多文档程序那么方便,很多资源都需要自己手动添加.最近在开发一个程序时,想尝试在对话框程序里面添加 工具栏 及其 按钮tooltip,于是便有了这篇文章,希望把经验总结下来以方便自己以后查询以及各位同仁查询! 一.首先建立一个对话框程序 1.添加工具栏资源,并在工具栏资源里添加几个按钮,并将按钮的width 和 height 改为24,也可以根据自己的需要更改尺寸,同时,还要为相应的按钮设置一个ID.具

如何在BCGControlBar界面库的CBCGPFormView子视图里面添加工具栏

最近有一个项目需求,需要在子视图里面添加一个新工具栏用来处理当前视图对应模块的操作.之前在对话框模式下做过添加工具栏的实现,在CBCGPFormView中添加工具栏还是头一次.在这里记录一下,给自己留个备忘,同时假如可以给同样有这样需要的人以帮助那也是极好的. 首先,在CParameterView类中声明一个CBCGPToolBar变量,代码如下: CBCGPToolBar m_wndParameterToolBar; 其次,在CParameterView类的OnCreate消息里面添加如下代码

Qt添加驱动——Qt数据库之添加MySQL驱动插件

Qt数据库之添加MySQL驱动插件(1) 现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用.下面我们就以现在比较流行的MySQL数据库为例,说明一下怎样在Qt Creator中添加数据库驱动插件.在讲述之前,我们先看一下Qt Creator中数据库的插件到底放在哪里. 我们进入Qt Creator的安装目录,然后进入相对应的文件夹下,比方我这里是 D:Qt2010.02.1qtpluginssqldrivers 在这里我们可以看见几个文件,如