Qt 给QWidget添加工具栏
2016-04-06 11:26
337 查看
在Qt中,给主窗口(QMainWindow类)添加工具栏非常方便,直接使用addToolBar 即可,如下所示:
但是,addToolBar 是QMainWindow 类的函数,在QWidget类中没有addToolBar类似的添加工具栏的函数,所以无法直接给QWidget类(QWidget的子类)添加工具栏。
能不能在QWidget类窗口中添加工具栏呢?当然可以。考虑到工具栏QToolBar其实也是QWidget的子类(class Q_GUI_EXPORT QToolBar : public QWidget ),直接把工具栏当作普通的QWidget添加到窗口中好了。一般的,工具栏处于窗口的顶部,所以,可以采取布局,将工具栏置于顶部即可。
我的例子是要创建一个可停靠的组件箱,在组件 箱上方显示相应的工具栏,如下所示:
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);
二、结果展示
相关文章推荐
- Qt设置窗口标题和exe图标
- Qt组件之文本框类
- Qt获取IP地址、MAC地址等网卡信息,区分本地网卡、无线网卡和虚拟网卡
- Qt学习备忘录(1)
- Qt组件之QRsdioButton
- QT5 OPenGL(二,平面图形上色)
- 一劳永逸解决UAC问题,获取超级管理员 administrator权限
- Qt调用外部程序QProcess
- QWidget
- QT gluPerspective 报错
- QT5 OPenGL(一)
- 终于配置好了Mac上的QT
- Qt5布局管理(三)——QStackedWidget堆栈窗口类
- QT 智能提示设置
- qt5使用mysql
- PyQt4开关按钮ToggleButton
- Qt回忆录之配置开发环境
- Qt的信号和槽是如何工作的
- VS集成Qt环境搭建
- Qt Creator管理多个项目