给QWidget添加工具栏
来源:互联网 发布:玉米田间调查数据 编辑:程序博客网 时间:2024/05/29 04:35
利用Qt的QToolBar实现工具栏。这里要注意,工具栏占据的空间仍然属于QWidget,假如程序员调用QPaintEvent来绘制QWidget,工具栏的部分仍然会被画到。因此每次绘制时,要把工具栏占据的区域减掉。
代码:
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QToolBar>#include <QAction>#include <QMouseEvent>#include <QPaintEvent>#include <QResizeEvent>class MainWindow : public QMainWindow{ Q_OBJECTpublic: MainWindow(QWidget *parent = 0); ~MainWindow(); QToolBar * m_pToolBar; QAction * m_pAct1; QAction * m_pAct2;public slots: void OnClick1(void); void OnClick2(void);protected: void resizeEvent(QResizeEvent *); void paintEvent(QPaintEvent *);};#endif // MAINWINDOW_H
#include "mainwindow.h"#include <QDebug>#include <QPainter>#include <QIcon>MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ m_pAct1 = new QAction(QIcon("E:\\lena.jpg"), "act1", this); m_pAct2 = new QAction(QIcon("E:\\hehe.png"), "act2", this); m_pToolBar = new QToolBar(this); m_pToolBar->addAction(m_pAct1); m_pToolBar->addAction(m_pAct2); addToolBar(Qt::TopToolBarArea, m_pToolBar); QObject::connect(m_pAct1, SIGNAL(triggered()), this, SLOT(OnClick1())); QObject::connect(m_pAct2, SIGNAL(triggered()), this, SLOT(OnClick2())); setMouseTracking(true);}MainWindow::~MainWindow(){ delete m_pAct1; delete m_pAct2; delete m_pToolBar;}void MainWindow::OnClick1(void){ qDebug()<<"yello";}void MainWindow::OnClick2(void){ qDebug()<<"hello";}void MainWindow::paintEvent(QPaintEvent *e){ QImage img(QString("E:\\lena.jpg")); QPainter qp; qp.begin(this); qp.drawImage(QRectF(0,m_pToolBar->height(), width(), height() - m_pToolBar->height()), img, QRectF(0,0, img.width(), img.height())); qp.end();}void MainWindow::resizeEvent(QResizeEvent *e){ m_pToolBar->setGeometry(0,0,width(), 50); m_pToolBar->setIconSize(QSize(50,50));}
效果:
0 0
- 给QWidget添加工具栏
- Qt 给QWidget添加工具栏
- 给QWidget添加菜单栏
- 给QWidget添加菜单栏
- 给IE工具栏添加按钮
- 给工具栏添加鼠标提示
- 给QWidget添加背景图片 【开源中国】
- 给QWidget添加滚动条(QScrollArea)
- 给工具栏按钮添加图标和文字
- VC编程给工具栏添加提示信息
- MFC 给自定义工具栏添加提示信息
- Openbravo怎么给工具栏添加一个按钮
- Qt 第六章 QScrollArea类给QWidget添加滚动条
- PyQt4中给QWidget添加背景图片或者更换背景色
- opengl中在QWidget中添加工具栏和右键菜单——学习总结
- 给QWidget设置背景图片
- 给工具栏上的按钮添加文字(VC)
- 给对话框添加菜单 工具栏 状态栏简易方法
- 在Windows下Python使用SSH若干事
- EXCEL2003、2007查找后变色显示
- 深入了解Bitmap源码解析及经验总结
- 基于注解的Spring MVC控制器
- linux的终端,网络虚拟终端,伪终端
- 给QWidget添加工具栏
- 2.定时器
- 【C++】队列容器 头文件 #include<queue> 解读
- Spark学习00---介绍及安装配置
- java多线程之线程运行状态
- protobuf在linux环境下c代码生成及测试
- Android 触摸事件分发和拦截机制
- sort-list
- php7新特性及升级