赞
踩
QMainWindow是Qt框架中用于创建应用程序主窗口的类。它是许多GUI应用程序的基础,提供了丰富的功能和灵活性,以支持用户界面的创建和管理。
QMainWindow的结构主要包括以下几个部分:
QMainWindow的设计既可以通过编程实现,也可以直接在UI文件中进行设计。
编程设计通常涉及到直接编写代码来创建和配置QMainWindow的各个部分,包括菜单栏、工具栏、状态栏以及中心部件等。这种方式具有较高的灵活性和定制性,但可能需要更多的编程知识和经验。
另一方面,Qt也提供了UI设计工具(如Qt Designer),允许开发者直接在UI文件中进行可视化设计。在UI文件中,开发者可以使用拖放的方式添加和配置各种控件和部件,然后保存为.ui文件。随后,可以使用Qt的uic工具将.ui文件转换为C++代码,以便在应用程序中使用。这种方式对于不熟悉编程的设计师或者希望快速原型设计的开发者来说可能更为方便。
新建工程后编辑mainwindow.cpp,使用代码的方式构建上述区域:
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QToolBar>
- #include <QPushButton>
- #include <QLabel>
- #include <QTextEdit>
- #include <QDockWidget>
-
- MainWindow::MainWindow(QWidget *parent)
- : QMainWindow(parent)
- , ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
-
- // 重置窗口大小
- resize(600,500);
-
- // 创建菜单栏 菜单栏最多一个
- QMenuBar *menuBar = new QMenuBar(this);
-
- // 将菜单栏置到窗口
- setMenuBar(menuBar);
-
- // 创建文件菜单
- QMenu *fileMenu = menuBar->addMenu("file");
- QMenu *editMenu = menuBar->addMenu("edit");
-
- // 创建菜单项
- fileMenu->addAction("open");
- fileMenu->addSeparator(); // 添加分隔
- fileMenu->addAction("save");
- editMenu->addAction("select");
-
- // 工具栏 可以有多个
- QToolBar *toolBar = new QToolBar(this);
- addToolBar(Qt::RightToolBarArea, toolBar);
-
- // 设置工具栏只允许左右停靠
- toolBar->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);
-
- // 设置浮动
- // toolBar->setFloatable(false);
-
- // 设置移动
- // toolBar->setMovable(false);
-
- // 设置工具选项
- toolBar->addAction("new");
- toolBar->addSeparator(); // 添加分隔
- toolBar->addAction("look");
-
- // 工具栏中添加控件
- QPushButton *btn = new QPushButton("trans", this);
- toolBar->addWidget(btn);
-
- // 状态栏 最多一个
- QStatusBar *stb = new QStatusBar(this);
-
- // 设置到窗口
- setStatusBar(stb);
-
- // 设置标签控件提示信息
- QLabel *label = new QLabel("state",this);
- stb->addWidget(label);
-
- // 停靠窗口 可以有多个
- QDockWidget *dw = new QDockWidget("on", this);
- addDockWidget(Qt::RightDockWidgetArea, dw);
-
- // 核心部件
- QTextEdit *tx = new QTextEdit(this);
- setCentralWidget(tx);
- }
-
- MainWindow::~MainWindow()
- {
- delete ui;
- }

运行后可以查看构建完成的界面:
新建工程,双击Forms文件夹下的mainwindow.ui进行编辑:
构建完成后的效果如下:
以添加图标为例,首先我们可以在控件的icon属性中选择文件,然后进行指定达到如下效果:
同时也可以通过添加资源的方式通过代码去指定显示的样式,将图片等资源放到一个文件夹下,然后将文件夹放置到项目目录下,右键项目,选择Add New,然后根据图示依次选择:
选择放置到项目目录下的资源文件,并给资源取名:
右击资源文件选择Open in Editor:
依次添加前缀和文件:
使用代码指定资源,最终实现效果如下:
本文讲述了QMainWindow的构成和一般构建方法,详细说明了资源的添加方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。