Qt中QMainWindow的相关介绍

目录

菜单栏

工具栏

状态栏:

停靠窗口:

QMainWindow 是标准基础窗口中结构最复杂的窗口,其组成如下:

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

菜单栏

添加菜单项,关于顶级菜单可以直接在 UI 窗口中双击,直接输入文本信息即可,对应子菜单项也可以通过先双击在输入的方式完成添加,但是这种方式不支持中文的输入。

常用的添加方式

一般情况下,我们都是先在外面创建出 QAction 对象,然后再将其拖拽到某个菜单下边,这样子菜单项的添加就完成了。

 

将创建好的open_action拖拽到“文件”的位置,显示红线时松手

 运行程序:

在mainwindow中添加这段代码 :

    connect(ui->open_action,&QAction::triggered,this,[=]()
    {
        QMessageBox::information(this,"clicked","你好呀");
    });

再点击打开时,会弹出窗口 

 

 工具栏

 

示例(

这段代码是将一个按钮和一个文本输入框添加到一个工具栏中。

首先,通过 ui->toolBar->addWidget() 函数,将一个新的 QPushButton 对象添加到工具栏中,并设置按钮的文本为 "搜索"。

接下来,创建一个 QLineEdit 对象,并通过 ui->toolBar->addWidget() 函数将其添加到工具栏中。这个 QLineEdit 是一个用于接收用户输入的文本输入框。

edit->setMaximumWidth(200);,则表示将文本输入框的最大宽度设置为 200 像素。

通过调用 edit->setMaximumWidth() 函数,可以设置 QlineEdit 的最大宽度,以限制用户在输入时的可见宽度。

通过 edit->setFixedWidth() 函数,设置文本输入框的固定宽度为 100 像素。这会限制文本输入框的宽度,确保它在工具栏中占据固定的空间。

这样,你的工具栏就包含了一个按钮和一个文本输入框,用户可以点击按钮或在文本输入框中输入内容进行相应的操作。

):

    ui->toolBar->addWidget(new QPushButton("搜索"));
    QLineEdit* edit = new QLineEdit;
    //edit->setMaximumWidth(200);
    edit->setFixedWidth(100);
    ui->toolBar->addWidget(edit);

工具栏属性介绍: 

 

 movable:用于指定工具栏是否可移动

allowedAreas:定义了工具栏可以放置的区域

orientation:它指定了工具栏的布局方向

iconSize:用于设置工具栏中图标的大小

toolButtonStyle:用于设置工具栏按钮的样式

floatable:用于指定工具栏是否可拖动浮动

状态栏:

一般情况下,需要在状态栏中添加某些控件,显示某些属性,使用最多的就是添加标签 QLabel

QStatusBar 是一个用于显示状态消息或临时消息的窗口部件。它提供了一些常用的方法来添加小部件、清除消息和显示消息。

1. addWidget(QWidget *widget, int stretch = 0): 该方法可以向状态栏中添加一个小部件。widget 是要添加的小部件的指针,stretch 是可选参数,用于设置小部件的拉伸因子。拉伸因子用于控制小部件在状态栏中的布局位置。默认情况下,拉伸因子为0,表示小部件不会拉伸,并紧密地放置在状态栏中。

2. clearMessage(): 该方法用于清除状态栏中的消息。如果有消息当前显示在状态栏上,则会被移除。

3. showMessage(const QString &message, int timeout = 0): 该方法用于在状态栏中显示一条消息。message 是要显示的消息文本,timeout 是可选参数,用于设置消息显示的持续时间(以毫秒为单位)。如果 timeout 设置为 0(默认值),则消息将一直显示,直到被清除。

// 类型: QStatusBar
void QStatusBar::addWidget(QWidget *widget, int stretch = 0);

[slot] void QStatusBar::clearMessage();
[slot] void QStatusBar::showMessage(const QString &message, int timeout = 0);

示例(在状态栏添加按钮和标签): 

    QPushButton* button = new QPushButton("按钮");
    ui->BAR->addWidget(button);
    // 标签
    QLabel* label = new QLabel("hello,world");
    ui->BAR->addWidget(label);

 

 停靠窗口:

找到Containers下的Dock Widget控件,拖到ui界面中

 

QDockWidget 的重要属性:

1. titleBarWidget: 用于设置自定义标题栏部件的属性。可以通过设置一个QWidget派生类的指针来替换默认的标题栏。

2. allowedAreas: 指定允许停靠的区域。可以使用 Qt::DockWidgetAreas 枚举值来设置,如 Qt::LeftDockWidgetArea、Qt::RightDockWidgetArea、Qt::TopDockWidgetArea、Qt::BottomDockWidgetArea。可以通过按住Ctrl键并拖动窗口来限制其停靠区域。

3. features: 用于启用或禁用 QDockWidget 的功能。可以使用 Qt::DockWidgetFeature 枚举值来设置,如 Qt::DockWidgetClosable(可关闭)、Qt::DockWidgetMovable(可移动)、Qt::DockWidgetFloatable(可浮动)等。

4. floating: 指定 QDockWidget 是否处于浮动状态。可以使用 `dockWidget->setFloating(true)` 将其设置为浮动状态。

5. sizeHint: 指定停靠窗口的首选大小。可以使用 `dockWidget->setMinimumSize(QSize(width, height))` 和 `dockWidget->setMaximumSize(QSize(width, height))` 方法来设置最小和最大大小。

6. allowedAreas、features 和 floating 这些属性可以通过 `dockWidget->setAllowedAreas(areas)`、`dockWidget->setFeatures(features)` 和 `dockWidget->setFloating(floating)` 这样的方法进行设置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小梁今天敲代码了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值