千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:合肥千锋IT培训  >  技术干货  >  QT使用教程之QMainWindow概述

QT使用教程之QMainWindow概述

来源:千锋教育
发布人:qyf
时间: 2023-02-13 17:20:33

  1、QMainWindow概述

  QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar)、多个工具栏(tool bars)、多个铆接部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget)。

图片 1

  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);

图片 2

  补充:

  另一种创建菜单栏的方式(成员函数)

  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);

图片 3

  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);

  状态栏信息分类:

  临时信息

  正式信息

  永久信息

图片 4

  5、铆接部件(浮动窗口)

  铆接部件QDockWidget:

  #include

  QDockWidget *dockwidget = new QDockWidget("first",this);

  this->addDockWidget(Qt::TopDockWidgetArea ,dockwidget);

图片 5

  6、核心部件

  除了以上部件以外,我们可以创建其他部件作为核心部件

  #include

  //创建记事本作为核心部件

  QTextEdit *edit = new QTextEdit("文本编辑器", this);

  this->setCentralWidget(edit);

图片 6

  7、资源文件

  Qt 资源系统是一个跨平台的资源机制,用于将程序运行时所需要的资源以二进制的形式存储于可执行文件内部。

  加载资源:

  步骤1:新增资源文件(右键工程新增资源文件)

  步骤2:给资源文件增加前缀

  步骤3:给资源文件增加资源(图片)

  步骤4:起别名(选用)

图片 7

  案例1、给菜单项加载图片

  //创建图片控件

  QPixmap pix;

  //选择图片

  pix.load(":/image/add.png");

  //给菜单项设置图片

  act1->setIcon(QIcon(pix));

图片 8

  案例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使用:

图片 9

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

unity快捷键大全

2023-08-28

unity射线检测多个物体

2023-08-28

unity富文本字体大小

2023-08-28

最新文章NEW

unity性能优化指标

2023-08-28

unity开发常用框架

2023-08-28

unity玻璃材质球

2023-08-28

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>