【QT】——基础窗口类QMainWindow

目录

1.概念

2.菜单栏——QMenuBar

3.工具栏

添加QAction 

工具栏属性设置

5.状态栏——QStatusBar

6 停靠窗口

属性设置


1.概念

QMainWindow 是标准基础窗口中结构最复杂的窗口,QMainWindow继承QWidget,他在QWidget的基础上提供了菜单栏,工具栏,状态栏。

 

QMainWindow主窗口各个部分分布: 

 

 以QT编译器作为例子:

 

  • 菜单栏:只能有一个,位于窗口的最上方
  • 工具栏:可以有多个,默认提供了一个,窗口的上下左右都可以停靠
  • 状态栏:只能有一个,位于窗口最下方
  • 停靠窗口:可以有多个,默认没有提供,窗口的上下左右都可以停靠

菜单栏,工具栏,状态栏的在ui界面的创建和移除。 

 

2.菜单栏——QMenuBar

  • QMenu:菜单
  • QMenuBar:菜单栏,它可以存放多个菜单

在菜单栏中添加菜单项:

 

 

QAction:动作类,用户当作一个菜单项或工具项插入菜单或工具栏

 

在菜单列表中添加QAction对象:

1.在窗口的最下边电机新建,添加新的action对象,用这种方法的好处是QAction对象的文本可以显示中文。

 2. 用鼠标拖拽到对应的菜单

 

QAction的信号: 

//点击QAction对象,发射出一个信号
void triggered(bool checked = false)

给保存QAction设置对应的槽函数:


    connect(ui->save_action,&QAction::triggered,this,[=](){
       qDebug()<<"保存文件";
    });

3.工具栏

  • QToolBar:工具栏
  • 工具栏的存储的对象也是QAction

  • 工具栏它可以有多个,可以存放在窗口的 上下左右:

 

添加QAction 

 第一种方式:UI界面

 

公共成员函数:

// 在QMainWindow窗口中添加工具栏
void QMainWindow::addToolBar(Qt::ToolBarArea area, QToolBar *toolbar);
void QMainWindow::addToolBar(QToolBar *toolbar);
QToolBar *QMainWindow::addToolBar(const QString &title);

// 将Qt控件放到工具栏中
// 工具栏类: QToolBar
// 添加的对象只要是QWidget或者启子类都可以被添加
QAction *QToolBar::addWidget(QWidget *widget);

// 添加QAction对象
QAction *QToolBar::addAction(const QString &text);
QAction *QToolBar::addAction(const QIcon &icon, const QString &text);

// 添加分隔线
QAction *QToolBar::addSeparator()

工具栏属性设置

UI 窗口的树状列表中,找到工具栏节点,就可以到的工具栏的属性设置面板了,这样就可以根据个人需求对工具栏的属性进行设置和修改了。

 

5.状态栏——QStatusBar

状态栏 是窗口中最底部的位置,它一般用来显示提示信息,可以在状态栏中添加某些控件,显示某些属性,使用最多的就是添加标签 QLabel,QPushButton等控件。

 

常用的接口: 

//往状态栏中的往后插入一个控件
void addWidget(QWidget *widget, int stretch = 0)

//往状态栏的strech位置插入一个控件
int insertWidget(int index, QWidget *widget, int stretch = 0)

槽函数:

//在状态栏的最前面显示消息,并显示指定毫秒数的给定消息(超时
//如果timeout为0(默认值),则消息将一直显示,
//直到调用clearMessage()插槽或再次调用showMessag//()槽以更改消息为止。
void showMessage(const QString &message, int timeout = 0)
//清除专题栏消息
void clearMessage()

添加控件:

    QPushButton* but=new QPushButton("开始");
    QLabel* l=new QLabel("hello world");
    ui->statusBar->addWidget(but);
    ui->statusBar->addWidget(l);

 

 

代码:

    ui->statusBar->showMessage("正在下载,稍等一下......");

 状态栏中的控件和状态消息都会互相被遮盖,取决于谁先创建出来,一般控件和状态消息只能选其一来显示。

6 停靠窗口

停靠窗口可以通过鼠标拖动停靠到窗口的上、下、左、右,或者浮动在窗口上方。如果需要这种类型的窗口必须手动添加,如果在非QMainWindow类型的窗口中添加了停靠窗口, 那么这个窗口是不能移动和浮动的。

属性设置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值