QT---QMainWindow的学习

目录

一、基本知识

二、创建QMainWindow,并创建完善菜单栏。

 2.1 菜单栏功能的实现​编辑

2.2主界面的窗口名称修改

三、工具栏的创建

3.1默认工具栏位于左边

3.2工具栏的位置放置

四、状态栏的设置

 4.1使用QLabel进行信息处理

五、铆接部件(浮动窗口)的创建

六、中心部件(核心部件)

七、资源文件设置

八、背景图设置


一、基本知识

QMainWindow主要为用户提供主窗口的类:主要界面包括菜单栏(Menu bars)、多个工具栏(Tool bars)、多个铆接部件(duck widgets)、一个状态栏(status bar)及一个中心部件(central widget)。

二、创建QMainWindow,并创建完善菜单栏。

   //设置窗口范围
   resize(800,600);

   //创建菜单栏
   QMenuBar *menubar= new QMenuBar(this);
   this->setMenuBar(menubar);

   //创建菜单
   QMenu *menu1=new QMenu("文件");
   QMenu *menu2=new QMenu ("编辑");
   QMenu *menu3=new QMenu("构建");
   menubar->addMenu(menu1);
   menubar->addMenu(menu2);
   menubar->addMenu(menu3);

   //创建菜单项1
   QAction *act11=new QAction("打开文件");
   QAction *act12=new QAction("另存文件为");
   QAction *act13=new QAction("关闭文件");
   menu1->addAction(act11);
   menu1->addAction(act12);
   menu1->addAction(act13);

其中:菜单栏的创建有以下两种方式可供选择,其余操作不变。

   QMenuBar *menubar= new QMenuBar(this);//方式一,new一个,可新建多个菜单栏
   QMenuBar *menubar= menuBar();//方式二,menuBar(),使用成员函数,仅一个菜单栏时使用

 2.1 菜单栏功能的实现

   //创建菜单项1
   QAction *act11=new QAction("打开文件");
   QAction *act12=new QAction("另存文件为");
   QAction *act13=new QAction("关闭文件");
   menu1->addAction(act11);
   menu1->addAction(act12);
   menu1->addAction(act13);

   //子菜单功能的实现(使用信号与槽函数进行连接)
   connect(act13,&QAction::triggered,this,&QMainWindow::close);

2.2主界面的窗口名称修改

(PS:其他程序的,新加入)


    ui->setupUi(this);

    this->setWindowTitle("天线单元辐射场强计算");//设置窗口名

 

 

三、工具栏的创建

   //创建工具栏
   QToolBar *tool=new QToolBar(this);
   this->addToolBar(tool);//添加工具栏

   //为工具栏创建工具项
   QAction *tool41=new QAction("工具1");
   QAction *tool42=new QAction("工具2");
   QAction *tool43=new QAction("工具3");
   //将工具加入工具栏
   tool->addAction(tool41);
   tool->addAction(tool42);
   tool->addAction(tool43);

3.1默认工具栏位于左边

   this->addToolBar(tool);//添加工具栏
   
  // this->addToolBar(Qt::LeftToolBarArea,tool);//将工具栏默认放置

3.2工具栏的位置放置

   //修改工具栏不可移动(未设置时,默认可随意移动)
   tool->setMovable(false);

   //使用setAllowedAreas()函数指定停靠位置
   tool->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);

   //设置工具栏的浮动状态(默认可浮动)
   tool->setFloatable(false);
  1. Qt::LeftToolBarArea                停靠在左侧
  2. Qt::RightToolBarArea              停靠在右侧
  3. Qt::TopToolBarArea                 停靠在顶部
  4. Qt ::BottomToolBarArea          停靠在底部
  5. Qt::AllToolBarAreas                 以上四个位置都可停靠

四、状态栏的设置

 4.1使用QLabel进行信息处理

   //创建状态栏
   // QStatusBar *ztl=new QStatusBar(this);//方式一,新建
   QStatusBar *ztl= statusBar();
   this->setStatusBar(ztl);

   //增加临时信息
   //ztl->showMessage("2023.7.11",6000);

   //增加正式信息(一般默认位于状态栏的左侧)
   //PS:正式信息与临时信息容易产生冲突矛盾,故应尽量避免同时使用
   QLabel *label1=new QLabel("2023年7月11日",this);
   ztl->addWidget(label1);

   //增加永久信息(一般默认位于状态栏的右侧)
   QLabel *label2=new QLabel("DDD",this);
   ztl->addPermanentWidget(label2);

五、铆接部件(浮动窗口)的创建

   //创建铆接部件(浮动窗口)
   QDockWidget *mjbj=new QDockWidget("first",this);
   this->addDockWidget(Qt::TopDockWidgetArea,mjbj);
  1. Qt : :LeftDockWidgetArea              左边
  2. Qt : :RightDockWidgetArea            右边
  3. Qt: :TopDockWidgetArea                上边
  4. Qt :: BottomDockWidgetArea          下边

六、中心部件(核心部件)

  //创建核心(中心)部件,以记事本为例
   QTextEdit *jsb=new QTextEdit("D的记事本",this);
   this->setCentralWidget(jsb);

七、资源文件设置

注意不要添加中文路径,否则报错。

 

   //给菜单添加图片
   //创建图片控件
   QPixmap pix;
   //选择图片
   pix.load(":/1");
   //给菜单项设置图片
   act11->setIcon(QIcon(pix));

八、背景图设置

        this->setFixedSize(800,600);//固定窗口大小
        this->setAutoFillBackground(true);//允许绘制,设置背景图填满窗口

        //创建图片控件
        QPixmap pix=QPixmap(":/1").scaled(this->size());

        //设置图片背景并连接
        QPalette BJT;
        BJT.setBrush(QPalette::Background,QBrush(pix));
        this->setPalette(BJT);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 对于学习 qt 知识点整理思维导图非常有帮助。首先,思维导图可以帮助我们梳理 qt 的知识结构,帮助我们建立起一个清晰的知识体系。我们可以将 qt 的主要知识点作为中心思维节点,在周围分支出各个具体的知识点,形成一个完整的思维导图。这样,我们可以清楚地看到每个知识点之间的关系和联系,更好地理解 qt 的整体架构和工作原理。 其次,思维导图可以帮助我们更好地记忆和复习 qt 的知识点。通过在思维导图中加入关键词、示意图和简单的说明,我们可以将 qt 的知识点以一种直观的方式呈现出来。这样,在复习的时候,我们可以随时查看思维导图,回忆起相关的知识点,加深记忆。同时,思维导图可以帮助我们发现知识点之间的遗漏或者薄弱之处,有助于我们有针对性地进行重点复习。 最后,思维导图还可以帮助我们提高问题解决能力。在学习 qt 的过程中,我们遇到问题时可以将问题写在思维导图中,并找到与之相关的知识点。通过思考和整理,我们可以更深入地理解问题的本质和解决方法,提高自己的问题解决能力。 综上所述,使用思维导图学习 qt 知识点非常有效。它可以帮助我们梳理知识结构、加深记忆、提高问题解决能力,是我们学习 qt 不可或缺的工具之一。 ### 回答2: Qt是一个跨平台的C++应用程序开发框架,广泛应用于图形界面应用程序的开发学习Qt时,整理思维导图是一种很好的学习方法。 首先,在思维导图中,我会列出Qt的基本概念和核心模块,包括信号和槽机制、窗口和控件、布局管理、事件处理等。了解这些基本概念可以帮助我建立起对Qt框架的整体认识。 接下来,我会将Qt框架中常用的模块和类进行分组,如图形界面相关的模块(如QWidgets、QPainter、QPixmap等),文件操作相关的模块(如QFile、QDir等),网络通信相关的模块(如QTcpSocket、QUdpSocket等),数据库操作相关的模块(如QSqlDatabase、QSqlQuery等)等。这样做可以让我更清晰地了解Qt框架中各个部分的功能和作用。 在每个模块中,我会进一步细分各个类的功能和使用方法,并在思维导图中进行标注。比如,对于QWidgets模块,我可以列举出常用的窗口类(如QMainWindow、QDialog等)和控件类(如QPushButton、QLineEdit等),并在其旁边注明它们的作用和常用的函数。 此外,在思维导图中,我还可以加入一些示例代码和链接,以加深对Qt知识点的理解和掌握。这样一来,我在学习Qt的过程中,可以通过查阅思维导图来对各个知识点进行回顾和巩固。 总的来说,用思维导图整理Qt知识点可以使我更加系统地学习和掌握Qt框架。将各个知识点有机地结合在一起,形成一个完整的思维导图,有助于我在实际应用开发中更加灵活和高效地运用Qt技术。 ### 回答3: QT是一种跨平台应用程序开发工具,它具有丰富的库和组件,可以帮助开发者快速创建图形用户界面和实现功能丰富的应用程序。学习QT时,可以使用思维导图进行知识点整理,以帮助我们更好地理解和记忆内容。 首先,在思维导图的中心,可以写上"QT"这个关键词,作为整个思维导图的核心。然后,可以根据QT的主要功能和特点,将知识点分为以下几个方面进行整理: 1. QT基础知识:首先要了解QT的基本概念和架构,比如QT的版本、主要组件等。可以列出QT的基本特点,如跨平台性、开源性等。 2. QT的常用类和模块:在思维导图的下方,可以列出QT的常用类和模块,包括QWidget、QLayout、QLabel、QPushButton等,以及常用的模块如图形、网络、数据库等。可以进一步展开每个类和模块,记录它们的特点和示例用法。 3. QT的信号与槽机制:QT的信号与槽机制是其重要的特性之一,可以通过思维导图来详细介绍这个机制的原理和使用方法。可以展示信号和槽的连接方式、参数的传递等。 4. QT的图形用户界面设计:QT提供了丰富的图形用户界面设计工具,如Qt Designer,可以在思维导图中列出图形用户界面设计的基本步骤和注意事项,比如窗口布局、控件的选择和使用等。 5. QT的常用功能和技巧:在思维导图的边缘,可以列出一些常用的QT功能和技巧,如界面国际化、线程处理、文件操作等。可以进一步展开每个功能和技巧,记录其实现方法和使用场景。 通过思维导图的整理学习,可以清晰地掌握QT的核心知识点,有助于开发者更好地理解和运用QT进行应用程序开发。同时,思维导图也可以帮助我们进行知识的巩固和复习,提高学习效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值