11黑马QT笔记之菜单栏、工具栏、核心控件、状态栏、浮动窗口

11黑马QT笔记之菜单栏、工具栏、核心控件、状态栏、浮动窗口

前提:我们创建项目的时候,选择的是QMainWindow带有菜单栏的选项。

1 菜单栏的创建:

    //1菜单栏
    //1)创建菜单栏 --注意是menuBar()函数 而不是QMenuBar()构造函数
    QMenuBar *pBar=menuBar();
    //2)创建菜单 --例如Qt左上角的文件 忘记函数看帮助文档Fn+F1
    QMenu *pFile=pBar->addMenu("文件");
    //3)创建菜单项(也叫动作) --例如文件中的新建项目 忘记函数看帮助文档Fn+F1
    QAction *pNew=pFile->addAction("新建项目");
    //4)按下新建项目 QAction会发出信号 可以看帮助文档有哪些--changed()、hovered()、toggled(bool checked)/triggered(bool checked = false)
    connect(pNew,&QAction::triggered,
            [=]()
    {
        //当按下菜单项时 发送信号我将其接收打印
        qDebug()<<"新建项目被按下";
    });

    //额外:添加菜单项之间的分割线 为了美观
    pFile->addSeparator();
    //再加一个菜单项 为了显示分割线
    QAction *pOpen=pFile->addAction("打开项目");

2 工具栏的创建:添加工具栏的快捷键有两种方法,一个是动作,另一个是添加控件按钮。按下都会触发信号,可以借此处理相应工作。

    //2工具栏
    //1)创建工具栏 注:函数是addToolBar("工具栏"); 工具栏只是代表一个名字
    QToolBar *pTool=addToolBar("工具栏");
    //2)创建工具栏快捷键 (也叫动作)     方法1---相将上面的动作添加进工具栏 这种是直接将名字放进去
    pTool->addAction(pNew);
    //3)继续创建工具栏快捷键           方法2---添加小控件即按钮型 不是上面的字符串型
    QPushButton *b=new QPushButton(this);
    b->setText("^_^");
    pTool->addWidget(b);           //然后在工具栏添加小控件
    //接收该按钮信号 将笑脸换成123
    connect(b,&QPushButton::clicked,
            [=]()
    {
        b->setText("123");
    });

3 核心控件的创建:

    //3核心控件
    //1)即设置窗口的中心窗口 --比较简单
    QTextEdit *pText=new QTextEdit(this);
    setCentralWidget(pText);

4 状态栏的创建:

    //4状态栏 --头文件为QStatusBar
    //1)创建状态栏
    QStatusBar *pSta=statusBar();
    //2)添加状态栏的控件或动作(添加选项都可以用这两种方法) 即内容 --我这里添加标签QLabel
    QLabel *pLabel=new QLabel(this);
    pLabel->setText("Normal text file");
    pSta->addWidget(pLabel);                   //因为标签为控件 所以用addWidget而不是addAction
    //3)继续添加 可以使用匿名对象添加 --从左往右
    pSta->addWidget(new QLabel("2",this));     //使用第二个重载函数
    //4)从右往左
    pSta->addPermanentWidget(new QLabel("3",this));

5 浮动窗口的创建:

    //5浮动窗口 头文件为QDockWidget
    //1)创建并增加浮动窗口(只有浮动窗口需要额外调用增加函数)    创建函数为类名属于正常思维 与菜单栏工具栏状态栏的小写区分
    QDockWidget *pDock=new QDockWidget(this);
    addDockWidget(Qt::RightDockWidgetArea,pDock);    //用重载函数2  参数1看帮助文档
    //2)为浮动窗口增加控件 增加控件时 没有addWidget就找setWidget
    QTextEdit *pText2=new QTextEdit(this);
    pDock->setWidget(pText2);

总结带菜单栏等等的窗口的创建:不难,就是接口函数比较多。

发布了54 篇原创文章 · 获赞 1 · 访问量 686

猜你喜欢

转载自blog.csdn.net/weixin_44517656/article/details/105703373