Qt基本部件的学习一

4 篇文章 0 订阅
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    this->setWindowTitle("QMainWindow");
    this->resize(800,500);

//创建菜单栏
//    QMenuBar*mBar=new QMenuBar(this);//设置父对象,其一是显示菜单栏,其二是为了对象树销毁
//将菜单栏添加主窗口
//this->setMenuBar(mBar);

    QMenuBar*mBar=menuBar();//等价上面两句,创建并返回menuBar

//定义菜单
    QMenu*menu=new QMenu("菜单一",this);
    QMenu*menu2=new QMenu("菜单二",this);
    QMenu*menu3=new QMenu("菜单三",this);
    QMenu*menu4=new QMenu("菜单四",this);


    //菜单栏中添加菜单
    mBar->addMenu(menu);
    mBar->addMenu(menu2);
    mBar->addMenu(menu3);
    mBar->addMenu(menu4);
//    QMenu*menu5=mBar->addMenu("菜单五");//等价于上面的两句,定义和添加

//菜单中添加菜单项
    //定义菜单项
    QAction *act=new QAction("菜单项一",this);
     QAction *act1=new QAction("菜单项一一",this);
    QAction*act2=new QAction("菜单项二",this);
        QAction*act22=new QAction("菜单项二二",this);
    //菜单添加菜单项
    menu->addAction(act); menu->addAction(act1);
    menu2->addAction(act2) ;   menu2->addAction(act22);

 QAction*act3=menu3->addAction("菜单项三");//等价于上面的两句

//菜单中增加分隔线
 menu3->addSeparator();
 QAction*act33=menu3->addAction("菜单项三三");//等价于上面的两句



给菜单项添加快捷键
 act33->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_9));
//给菜单项增加槽函数
 connect(act33,&QAction::triggered,
         [=](){

qDebug()<<"hello";
//     this->close();

 }
         );





/**************************************************/



 //添加工具栏《菜单项的快捷方式》 工具栏可以存在多个


 QToolBar*toolbar=addToolBar("工具栏");



 //工具栏添加快捷键
 toolbar->addAction(act);
 toolbar->addAction(act3);


//工具栏添加控件 ,并给控件增加槽函数
 toolbar->addWidget(new  QPushButton  ("hello",this));//匿名对象

 QPushButton *btn2=new QPushButton("world",this);
toolbar->addWidget(btn2);

btn2->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_3));//增加快捷键
connect(btn2,&QPushButton::clicked,
        [=](){

//    this->hide();
    qDebug()<<"hello world";
}
        );

//设置工具栏不允许浮动
toolbar->setFloatable(false);
//设置工具栏的允许停靠的区域
toolbar->setAllowedAreas(Qt::LeftToolBarArea);//第一次默认位置是在顶部,移动之后只能停放在左边
//toolbar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);//停放的位置关系可以是左边或右边
//增加工具栏的方式二
//QToolBar *tool=new QToolBar(this);
//this->addToolBar(tool);






/****************************/

//设置状态栏

QStatusBar*statusbar=statusBar();
//准备要增加到状态栏上的控件
QLabel*label=new QLabel (this);

label->setText("我是一个标签");
//给状态栏增加控件
statusbar->addWidget(label);//默认从左往右添加
//也可以使用匿名方式
statusbar->addWidget(new QLabel("我也是一个标签控件"));
//也可以向状态栏右边添加控件
statusbar->addPermanentWidget(new QLabel("我是一右标签控件"));




设置状态栏的方式二  状态栏也只能存在一个
//QStatusBar*statusBBar=new QStatusBar(this);
给窗口增加状态栏
//this->setStatusBar(statusBBar);

//statusBBar->addPermanentWidget(new QLabel("我也是一个右边的标签"));



/******************************************************/

//增加核心部件《中间区域》

//创建文本编辑器
QTextEdit*textEdit=new QTextEdit("文本编辑器",this);
//把文本编辑器放到中间区域
setCentralWidget(textEdit);




/******************/
//增加浮动窗口,(铆接部件)《这个是旁边区域》

QDockWidget*dockwidget=new QDockWidget("浮动窗口",this);
 this->addDockWidget(Qt::LeftDockWidgetArea,dockwidget);//设置浮动窗口放置的位置
//也可以给这个浮动窗口里面增加文本编辑器控件
QTextEdit*textEdit2=new QTextEdit(this);

 dockwidget->setWidget(textEdit2);

 //我们也能设置这个控件允许停靠的位置《上下左右》
 //使用 dockwidget->setAllowedAreas()































}

MainWindow::~MainWindow()
{

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丁金金

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

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

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

打赏作者

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

抵扣说明:

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

余额充值