(QT学习笔记):QMainWindow、资源文件添加

 

目录

QMainWindow

菜单栏

创建菜单

创建菜单项

添加分割线

工具栏

状态栏

铆接部件

核心部件(中心部件)

资源文件

添加图标资源详细步骤

QMainWindow

  • QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个锚接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget),是许多应用程序的基础,如文本编辑器,图片编辑器等。

【创建QMainWindow工程】

菜单栏

  • 一个主窗口最多只有一个菜单栏
    • 位于主窗口顶部、主窗口标题栏下面
    • 创建菜单栏,通过QMainWindow类的menubar()函数获取主窗口菜单栏指针。
  • 在mainwindows.cpp的构造函数中
//创建菜单栏                    
QMenuBar *bar = menuBar(); 
setMenuBar(bar);           

创建菜单

  • 添加头文件 QMenuBar
  • 调用QMenu的成员函数addMenu来添加菜单
QAction* addMenu(QMenu * menu)
QMenu* addMenu(const QString & title)
QMenu* addMenu(const QIcon & icon, const QString & title)
//创建菜单栏                             
QMenu *fileMenu = bar->addMenu("文件");
QMenu *editMenu = bar->addMenu("编辑");
QMenu *toolMenu = bar->addMenu("工具");

创建菜单项

  • 调用QMenu的成员函数addAction来添加菜单项
QAction* activeAction() const
QAction* addAction(const QString & text)
QAction* addAction(const QIcon & icon, const QString & text)
QAction* addAction(const QString & text, const QObject * receiver,
                   const char * member, const QKeySequence & shortcut = 0)
QAction* addAction(const QIcon & icon, const QString & text, 
                   const QObject * receiver, const char * member, 
                   const QKeySequence & shortcut = 0)
//创建菜单项                                           
QAction *newAction = fileMenu->addAction("新建");   
QAction *openAction = fileMenu->addAction("打开");  
QAction *saveAction = fileMenu->addAction("保存");  

添加分割线

//创建菜单项                                         
QAction *newAction = fileMenu->addAction("新建"); 
fileMenu->addSeparator();                       
QAction *openAction = fileMenu->addAction("打开");
fileMenu->addSeparator();                       
QAction *saveAction = fileMenu->addAction("保存");

工具栏

  • 添加头文件 QToolBar
  • 主窗口的工具栏上可以有多个工具条,通常采用一个菜单对应一个工具条的的方式,也可根据需要进行工具条的划分。
  • 直接调用QMainWindow类的addToolBar() 函数获取主窗口的工具条对象,每增加一个工具条都需要调用一次该函数。
  • 插入属于工具条的动作,即在工具条上添加操作。
  • 通过QToolBar类的addAction函数添加。
  • 工具条是一个可移动的窗口,它的停靠区域由QToolBarallowAreas决定,包括:
Qt::LeftToolBarArea		停靠在左侧
Qt::RightToolBarArea	停靠在右侧
Qt::TopToolBarArea		停靠在顶部
Qt::BottomToolBarArea   停靠在底部
Qt::AllToolBarAreas		以上四个位置都可停靠
  • 使用 setAllowedAreas() 函数指定停靠区域:
setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea)
  • 使用 setMoveable() 函数设定工具栏的可移动性:
setMoveable(false) //工具条不可移动, 只能停靠在初始化的位置上
  • 示例:
//工具栏                                                                 
QToolBar * toolBar = new QToolBar(this);                              
addToolBar(Qt::LeftToolBarArea, toolBar); 
                            
//设置只允许左右停靠                                                           
toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea); 

//设置浮动                                                                
toolBar->setFloatable(false);            
                             
//设置移动(总开关)                                                           
toolBar->setMovable(false);                                           

【工具栏中放入小部件】

//工具栏中添加小部件                    
toolBar->addAction(newAction); 
//添加分割线                        
toolBar->addSeparator();       
toolBar->addAction(openAction);
toolBar->addAction(saveAction);

状态栏

  • 头文件 QStatusBar
  • 派生自QWidget类,使用方法与QWidget类似,QStatusBar类常用成员函数。
  • 状态栏也只能最多有一个
//添加小部件
void addWidget(QWidget * widget, int stretch = 0)
//插入小部件
int	insertWidget(int index, QWidget * widget, int stretch = 0)
//删除小部件
void removeWidget(QWidget * widget)
  • 示例:
//状态栏 一般只能有一个                                 
QStatusBar *stBar = statusBar();              
setStatusBar(stBar);                          
                                              
QLabel *lab1 = new QLabel("左侧提示信息",this);     
stBar->addWidget(lab1);                       
                                              
QLabel *lab2 = new QLabel("右侧提示信息",this);     
stBar->addPermanentWidget(lab2);              

铆接部件

  • 添加头文件  QDockWidget
  • 铆接部件 QDockWidget,也称浮动窗口,可以有多个。
QDockWidget * dock = new QDockWidget("标题",this);
addDockWidget(Qt::LeftDockWidgetArea, dock);
dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea | Qt::TopDockWidgetArea);  设置区域范围
  • 示例:
//创建铆接部件                                                                      
QDockWidget *dockwidget = new QDockWidget("Asinmy",this);                     
addDockWidget(Qt::LeftDockWidgetArea, dockwidget);                            
//设置只允许左右停靠                                                                   
dockwidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);

核心部件(中心部件)

  • 除了以上几个部件,中心显示的部件都可以作为核心部件,例如一个记事本文件,可以利用QTextEdit做核心部件
  • 添加头文件 ,QTextEdit 。
//核心部件,只能有一个                           
QTextEdit* edit = new QTextEdit(this); 
setCentralWidget(edit);                

资源文件

  • 创建带UI的项目

  • 先输入英文,然后在属性text中改成中文

  • 右击,添加工具栏

添加图标资源详细步骤

  • 找到要条件图标的控件的名称:

  • 在ui下面进行操作:

  • 第1步:将图片资源放到项目文件夹中

  • 第2步:右击项目,添加新文件--》Qt --》 Qt Resource File

  • 第3步:如果切出res.qrc文件,右击 Open in Editor

  • 第4步:添加前缀,这里添加 / ,然后添加文件,选择要加入的图片即可

  • 第5步:构建项目(Ctrl + b),将图片添加到项目中

  • 第6步:使用图片资源,语法:": + 前缀名  + 文件名称"
//给新建添加图标                                               
ui->actionNew->setIcon(QIcon(":/Image/Luffy.png"));     
ui->actionOpen->setIcon(QIcon(":/Image/Sunny.jpg"));    
ui->actionSave->setIcon(QIcon(":/Image/butterfly.png"));

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值