Qt MainWindow

代码

#include "mainwindow.h"
#include <QMenuBar>
#include <QToolBar>
#include <QDebug>
#include <QPushButton>
#include <QStatusBar>
#include <QLabel>
#include <QDockWidget>
#include <QTextEdit>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    //重置窗口大小
    this->resize(600,400);
    //菜单栏创建
    QMenuBar * bar =  menuBar();
    //将菜单栏放入窗口
    this->setMenuBar(bar);

    //创建菜单  只能最多一个
    QMenu * fileMenu = bar->addMenu("文件");
    bar->addMenu("编辑");

    //创建菜单项
    QAction * newAction = fileMenu->addAction("新建");
    //添加分隔线
    fileMenu->addSeparator();
    QAction * openAction = fileMenu->addAction("打开");

    //工具栏 可以有多个
    QToolBar * toolBar = new QToolBar(this);
    addToolBar(Qt::LeftToolBarArea,toolBar);

    //后期设置 只允许 左右停靠
    toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

    //设置浮动
    toolBar->setFloatable(false);

 
### 创建 Qt MainWindow 示例 #### 动态创建浮动窗口 在 Qt 应用程序中,`QDockWidget` 类用于创建可以自由移动和停靠的工具栏。下面是一个简单的 `MainWindow` 构造函数示例,其中包含了如何创建并添加一个名为“浮动窗口”的 `QDockWidget` 到主窗口底部区域的方法[^1]。 ```cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); // 创建一个新的 QDockWidget 实例,并命名为 "浮动窗口" QDockWidget *dockwidget = new QDockWidget("浮动窗口", this); // 将此 dock widget 添加到底部 Dock Widget 区域 addDockWidget(Qt::BottomDockWidgetArea, dockwidget); } ``` #### 使用 Qt Designer 设定中心部件 对于那些希望利用图形化设计工具来简化开发过程的人而言,可以通过 Qt Designer 来设定中心部件而无需编写额外代码。具体操作如下: - 打开 Qt Designer 并加载项目文件; - 右键单击窗体控件,选择 “Promote to...”,输入自定义类的信息; - 完成上述配置后,在 `.ui` 文件对应的 C++ 或 Python 代码里,只需简单地调用 `setCentralWidget()` 方法即可指定该组件作为主窗口的核心显示区[^2]。 #### 关联用户界面元素与主窗口 为了使 UI 组件能够正常工作并与逻辑部分交互,通常会在初始化阶段执行一些必要的连接动作。这一步骤确保了当界面上发生特定事件时(比如按钮被点击),相应的槽函数会被触发处理这些事件。以下是这部分工作的典型实现方式[^3]。 ```cpp // 假设有一个 QPushButton 对象 button 和一个 slot 函数 onButtonClicked() connect(button, SIGNAL(clicked()), this, SLOT(onButtonClicked())); ``` #### 处理鼠标事件 除了基本的功能外,有时还需要捕捉用户的某些行为来进行更复杂的响应。例如监听鼠标的按键状态变化就可以借助于重载 `eventFilter()` 函数或者直接判断传入参数是否属于某种类型的事件对象。这里给出了一段检测鼠标左键按下的条件语句片段[^4]。 ```cpp if (e->type() == QEvent::MouseButtonPress && static_cast<QMouseEvent*>(e)->button() == Qt::LeftButton) { qDebug("Mouse Left Button Pressed"); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

太湖鹏哥

我会利用打赏来学习并写出好文章

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

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

打赏作者

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

抵扣说明:

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

余额充值