首页 > 其他分享 >QMainWindow

QMainWindow

时间:2024-08-12 16:26:51浏览次数:7  
标签:QMainWindow bar QMenu 创建 方法 QToolBar QLabel

QMainWindow介绍

QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar),多个工具栏(tool
bars),多个铆接部件(dock widgets),一个状态栏(status bar),及一个中心部件central widget,是许多应用程序的基础,如文本编辑器,图形编辑器等。

  • menu bar
    包含的必要的头文件:
#include<QMenuBar>

涉及到的类:
1.QMenuBar
2.QMenu
涉及到的方法:
1.创建一个菜单栏,属于QMainWIndow的方法

QMenuBar*mb=this->menuBar()//menuBar就是创建菜单栏的方法(应该是实例化了一个QMenuBar的对象),归属QMainWIndow,
//返回一个QMenuBar类型的指针,用来进行菜单栏的有关操作(掉用QMenuBar的有关函数,注意这个并不同于QPushButton的构造函数创建,有明显的依赖关系)

//通过调用setMenuBar方法,将菜单栏挂在QMainBar上
this->setMenuBar(mb);

2.创建菜单,属于QMenuBar的方法

QMenu*fileMenu=mb->addMenu("文件);
QMenu*editMenu=mb->addMenu("编辑");  //addMenu()就是创建菜单项的方法(应该是实实例化了一个QMenu的对象),返回一个QMenu类型的指针,可以用这个指针来修改QMenu对象的属性.

3.创建菜单项,属于QMenu的方法

QAction*newAction=fileMenu->addAction("新建");//不知道有没有返回值,确定了,返回值为QAction类型的指针
//添加分隔符
fileMenu->addSeparator();
QAction*fileAction=fileMenu->addAction("打开");//指针fileAction代表了“打开”这一动作
  • toolbar
    包含的必要的头文件
#include<QToolBar>

涉及的类:
1.QToolBar
涉及到的关键方法:
1.QToolBar单独的类,通过构造函数创建出一个工具栏

QToolBar*bar=new QToolBar(this);
//QMainWindow的方法,将QToolBar对象挂在QMainWindow
addToolBar(bar);
//固定工具栏在某一侧,重载addToolBar函数
addToolBar(QT::leftToolBarArea,bar);
//QToolBar的方法,固定工具栏的位置
bar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置浮动
bar->setFloatable(false);
//设置是否能够移动
bar->setMovable(false);

2.创建工具,属于QToolBar的方法,返回QAction的指针

bar->addAction(newAction);//newAction正是之前菜单栏创建的动作,同一个动作
//添加分割线
bar->setSeparator();
bar->addAction(fileAction);
 //工具栏中添加控件
QPushButton*btn=new QPushButton("a",this);
bar->addWidget(btn);
  • statusBar
    包含必要的头文件
#include<QStatusBar>

涉及的类:
1.QStatusBar
2.QLabel
涉及到的关键方法:
1.创建一个QStatusBar对象,并返回指针,是MainWindow的方法

QStatusBar*stBar=this->statusBar();

2.将状态栏设置到窗口中,是属于MainWindow的方法

this->setStatusBar(stBar);

3.放标签控件

QLabel*Label1=new QLabel("提示信息",this);//利用QLabel的构造函数创建一个QLabel
this->addWidget(label1);
QLabel*Label2=new QLabel(“右侧提示信息”,this);
this->addPermanentWIdget(Label2);
  • dock widgets
    必须要包含的头文件
#include<QDockWidget>

涉及到的关键方法:
1.QDockWIdget的构造函数,创建一个QDockWIdget类的对象

QDockWidget*dockWidget=new QDockWidget("浮动",this);

2.设置dockWIdget的位置的方法,属于窗口类

this->addDockWidget(Qt::BottomDockWidgetArea,dockWidget);
  • central Widget
    中心部件,只能有一个,顾名思义,中心
    可能涉及到的类:
    1.QTextEdit
    包含头文件:
#include<QTextEdit>

涉及到的关键方法:
1.控件的构造函数

QTextEdit*edit=new QTextEdit(this);

2.将中心部件挂在窗口上,属于窗口MainWIndow的方法

this->setCentralWidget(edit);

总结:将部件挂在窗口上时,set-一个,add-多个

标签:QMainWindow,bar,QMenu,创建,方法,QToolBar,QLabel
From: https://www.cnblogs.com/qinbaoyang/p/18321662

相关文章

  • PyQt5 GUI编程(QMainWindow与QWidget模块结合使用)
    一.简介QWidget是所有用户界面对象的基类,而QMainWindow用于创建主应用程序窗口的类。它是QWidget的一个子类,提供了创建具有菜单栏、工具栏、状态栏等的主窗口所需的功能。上篇主要介绍了基本使用,创建窗口时都是继承单个模块,本章主要介绍下两个模块的结合使用。二.具体用法1.我......
  • Qt 解决中报错xxx.h:4:10: ‘QMainWindow‘ file not found
    前言qt中这个报错非常无语,在一个目录下打开是正常的,然后copy项目到其他文件夹就找不到报错,大家的原因都不太相同,这里列出以下几种可能及解决方法。可能1.中文路径很有可能copy到了一个中文路径下的目录,然后导致出现问题。解决方式就是换到英文目录可能2.将.pr......
  • PyQt5+python AttributeError: 'QMainWindow' object has no attribute 'slot1'解决办
    Step1.原因分析因为以前写过pyqt5,所以还是有一定的基础的,但是最近重新写上位机的时候,突然发现以前的办法不好用了,以前就是直接从Qtdesigner创建完成后,使用指令生成一个py文件,从main文件中调用就可以了,这次发现,直接使用槽函数,会报错AttributeError:'QMainWindow'objec......
  • Qt cannot initialize object parameter of type ‘QWidget‘ with an expression of
    报错如图:qtcreator工程文件例程报错error:cannotinitializeobjectparameteroftype‘QWidget’withanexpressionoftype‘tab_workface’问题分析可能因为qtcreator4.11.0basedonqt5.12版本略微冲突导致。。问题解决帮助->关于插件,将ClangCo......
  • Qt学习随笔-3、QMainWindow
       1 QMainWindow   1.1 菜单栏最多只能有一个      1.1.1 创建菜单栏,通过QMainWindow类的menubar()函数获取主窗口菜单栏指针            QMenuBar*bar=MenuBar();      1.1.2 setMenuBar(bar);  ......
  • pyqt5-QMainWindow主窗口组件
    1、介绍QMainWindow,主窗口组件。该类型组件相比于QWidget作为窗口而言,主要是增加了菜单栏、状态栏和工具栏2、基础使用setIconSize(self,iconSize:QSize)设置图片大小iconSize(self)->QSize获取图片大小setMenuBar(self,menubar:QMenuBar)设置菜单栏men......
  • pyqt5-QMainWindow
    1、介绍QMainWindow是一个窗口组件,也是最常用的主窗口。importsysfromPyQt5.QtWidgetsimportQMainWindow,QApplicationfromPyQt5.uicimportloadUiclassmy_window:def__init__(self):self.ui=loadUi('ui\\main_window.ui')self.ui:QMa......
  • QMainWindow知识点记录
    1.新建action toolbaropenFileAction = new QAction(QIcon(":/pic/open"), QString::fromLocal8Bit("打开"), this); openFileAction->setShortcut(tr("Ctrl+O")); openFileAction->setStatusTip(tr("打开一个文件"));-------......
  • QMainWindow简介
        QMainWindow是带有菜单栏、工具栏、状态栏的主窗口类,它有自己单独的布局。布局有一个中心区域,通常是标准的Qt部件,也可以是定制部件,且必须有一个中心小部件。set......
  • 3.PyQt5【窗口组件】主窗口-QMainWindow
    一、前言QMainWindow类提供一个有菜单条、锚接窗口(例如工具条)和一个状态条的主应用程序窗口。主窗口通常用在提供一个大的中央窗口部件(例如文本编辑或者绘制画布)以及周围......