QT使用教程之QMainWindow概述
1、QMainWindow概述
QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个铆接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget)。
2、菜单栏
菜单栏类QMenuBar
菜单类QMenu
QAction类:充当子菜单(菜单项)
#include
#include
#include
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);
//创建菜单项
QAction *act1 = new QAction ("打开文件");
QAction *act2 = new QAction ("另存为");
QAction *act3 = new QAction ("关闭文件");
menu1->addAction(act1);
menu1->addAction(act2);
menu1->addAction(act3);
补充:
另一种创建菜单栏的方式(成员函数)
QMenuBar *menubar = menuBar();
点击菜单项,实现对应功能
connect(act3,&QAction::triggered,this,&QMainWindow::close);
3、工具栏
工具栏类QToolBar:
QAction类:充当子工具(工具项)
#include
//创建工具栏
QToolBar *toolbar = new QToolBar(this);
//this->addToolBar(toolbar);
this->addToolBar(Qt::LeftToolBarArea ,toolbar);
//创建工具项
QAction *act4 = new QAction ("工具");
toolbar->addAction(act1);
toolbar->addAction(act2);
toolbar->addAction(act3);
toolbar->addAction(act4);
//使用setAllowedAreas()函数指定停靠区域:
toolbar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
//修改工具栏不可移动(默认可上下左右移动)
toolbar->setMovable(false);
//设置工具栏的浮动状态(默认可悬浮窗口)
toolbar->setFloatable(false);
4、状态栏
状态栏QStatusBar:
#include
//创建状态栏
QStatusBar *statusbar = statusBar();
// QStatusBar *statusbar = new QStatusBar(this);
this->setStatusBar(statusbar);
//增加临时信息
//statusbar->showMessage("页面显示成功",3000);
//增加正式信息(一般位于状态栏左侧)
QLabel *label1 = new QLabel("打开文件", this);
statusbar->addWidget(label1);
//增加永久信息(一般位于状态栏右侧)
QLabel *label2 = new QLabel("www.qf.com", this);
statusbar->addPermanentWidget(label2);
状态栏信息分类:
临时信息
正式信息
永久信息
5、铆接部件(浮动窗口)
铆接部件QDockWidget:
#include
QDockWidget *dockwidget = new QDockWidget("first",this);
this->addDockWidget(Qt::TopDockWidgetArea ,dockwidget);
6、核心部件
除了以上部件以外,我们可以创建其他部件作为核心部件
#include
//创建记事本作为核心部件
QTextEdit *edit = new QTextEdit("文本编辑器", this);
this->setCentralWidget(edit);
7、资源文件
Qt 资源系统是一个跨平台的资源机制,用于将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。
加载资源:
步骤1:新增资源文件(右键工程新增资源文件)
步骤2:给资源文件增加前缀
步骤3:给资源文件增加资源(图片)
步骤4:起别名(选用)
案例1、给菜单项加载图片
//创建图片控件
QPixmap pix;
//选择图片
pix.load(":/image/add.png");
//给菜单项设置图片
act1->setIcon(QIcon(pix));
案例2、增加背景图(补充)
this->setFixedSize(800,600);
this->setAutoFillBackground(true);//允许绘制
//创建图片控件
QPixmap pix = QPixmap(":/image/butterfly.png").scaled(this->size());
// pix.load(":/image/butterfly.png");
QPalette palette;
palette.setBrush(QPalette::Background,QBrush(pix));
this->setPalette(palette);
8、UI文件
ui功能:绘制界面(通过拖拽控件)
ui使用:
相关推荐HOT
更多>>unity图集合并成图片
Unity图集合并成图片是一种将多个小图片合并成一个大图片的技术。这种技术在游戏开发中非常常见,可以有效地减少内存占用和提高渲染效率。我们...详情>>
2023-08-28 18:07:44unity向量旋转得另一向量
Unity中的向量旋转是一项常见的操作,可以通过使用旋转矩阵或四元数来实现。以下是关于如何在Unity中旋转一个向量得到另一个向量的详细解释。在...详情>>
2023-08-28 18:07:42unity哪个版本免费
Unity是一款强大的游戏开发引擎,提供了许多功能和工具,可以帮助开发者轻松创建高质量的游戏。关于Unity的版本免费问题,我将为你详细解答。Un...详情>>
2023-08-28 18:07:42unity对象池怎么写
Unity对象池是一种常用的优化技术,用于管理和重复利用游戏中的对象,以减少内存分配和销毁的开销。在Unity中,可以通过编写一些代码来实现对象...详情>>
2023-08-28 18:07:41