多文档编辑器--(3)菜单项的功能

在前面两节中,实现了界面的设计(菜单项)和子窗口类的实现,下一步就是实现菜单项的功能,就是把菜单项和子窗口类的成员函数关联起来。

1. 项目文件

在这里插入图片描述

2. mainwindow.h 头文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include "mdichild.h"

#include <QMainWindow>
#include <QMdiSubWindow>
#include <QSignalMapper>

class QSignalMapper;

namespace Ui {
   
class MainWindow;
}

class MainWindow : public QMainWindow
{
   
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    MdiChild* createMdiChild();              		// 创建子窗口
    void setActiveSubWindow(QWidget* window);       // 设置活动子窗口
    void updateMenus();                     		// 更新菜单
    void updateWindowMenu();						// 更新“窗口”菜单
    
    void on_actionNew_triggered();					// New 槽函数
    void on_actionOpen_triggered();					// open 槽函数
    void on_actionSave_triggered();					// save 槽函数
    void on_actionUndo_triggered();					// undo 槽函数
    void on_actionClose_triggered();				// close 槽函数
    void on_actionAbout_triggered();				// about 槽函数
    void on_actionAboutQt_triggered();				// AboutQt 槽函数
    void on_actionExit_triggered();					// exit 槽函数
    void on_actionSaveAs_triggered();				// saveAs 槽函数

private:
    Ui::MainWindow *ui;

    QAction* actionSeparator;             			// 间隔器, 窗口菜单下的
    MdiChild* activeMdiChild();           			// 返回一个活动窗口的指针,没有窗口时,返回0
    QMdiSubWindow* findMdiChild(const QString& fileName);       // 查找子窗口

    QSignalMapper* windowMapper;

    void readSettings();                			// 读取窗口设置
    void writeSettings();               			// 写入窗口设置

protected:
    void closeEvent(QCloseEvent* event);                  // 关闭事件
};
#endif // MAINWINDOW_H

可以看出,mainwindow中成员函数大多都是槽函数,槽函数中除了菜单项的槽函数外,还有一些槽函数来响应子窗口的变化,例如,当主窗口中没子窗口时,save, saveAs,close等菜单项是不可用的。没选中一些文字时,cut copy 是不可用的。还有如下图所示,在窗口菜单中显示打开子窗口的文件列表。
在这里插入图片描述

3.mainwindow.cpp 源文件

(1)构造函数
在构造函数中先把私有成员变量 actionSeparator 设置为间隔器,这个间隔器就是在“窗口”菜单中的
“Prev(V)”下面的间隔器。

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
   
    ui->setupUi(this);
    
    actionSeparator = new QAction(this);                // 创建action
    actionSeparator->setSeparator(true);                // 把这一 action 设置为 分隔器
    
    updateMenus();                                      // 更新菜单&#x
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SynWrite 将众多知名编辑器的精彩创意融入一个免费提供的产品中。 对于 Web 工作者,编码人员和编写者来说,这是一个完整的环境。SynWrite 的许多功能包括宏录制,代码高亮显示,代码折叠,多插入符编辑和正则表达式。 (见下面的功能列表。)您可以使用 Python 脚本语言编写的插件轻松扩展编辑器。 这里有很多插件,您可以自己编写。您可以根据需要轻松配置它,甚至可以随身携带 USB 闪存盘。 它是免费的开源软件。 开源代码编辑器 SynWrite 中文版 开源代码编辑器 SynWrite 中文版 SynWrite 功能 完全可自定义的语法高亮显示多种语言(见列表) 代码折叠 支持几乎所有编码系统(ASCII,Unicode等) 多重插入编辑(见动画) 多项选择(见动画) 面板: 源代码的树视图 文件管理器 项目管理 FTP / SFTP客户端 文档迷你地图 剪贴板历史 外部工具输出 搜索结果 文字剪辑 标签列表 编码助手: 自动完成(少数词法分析者,请参阅帮助主题) 自动关闭标签/支架 代码模板 SmartTagTabbing 功能(见动画) SyncEditing 功能可编辑相同的标识符(请参阅动画) Emmet(Zen Coding)支持(HTML + CSS + XSL 高速编码引擎) 颜色预览 颜色选择器 图像预览 插入图片标签 插入日期/时间戳 便携式书签 列标记 微型地图 搜索并替换正则表达式 搜索并替换多个文件 支持调用外部工具 支持Python插件 基于正则表达式的字符串提取 可定制的热键 书签 关键宏 文件会话 “Total Commander”文件管理器的插件 多语言界面:德语,法语,西班牙语等。 集成的HTML Tidy库 使用语法突出显示导出为RTF / HTML 便携式模式 …和更多! 启动后如果是英文,可以在菜单栏 Options 选项中设置语言中简体中文,设置后重启软件即可
### 回答1: 如果你想下载pytorch-yolov3源码,这里提供两种途径。第一种是从Github下载源码,这需要先安装Git。在终端输入以下指令: ``` git clone https://github.com/eriklindernoren/PyTorch-YOLOv3.git ``` 这将在当前目录下创建一个名为“PyTorch-YOLOv3”的文件夹,并将源码下载到该文件夹中。 第二种途径是在Github页面上直接下载压缩包。打开链接(https://github.com/eriklindernoren/PyTorch-YOLOv3),点击“Code”按钮,选择“Download ZIP”,将压缩包下载到本地。 下载完毕后,解压源码并进入该文件夹,在终端输入以下指令即可安装所需依赖: ``` pip install -r requirements.txt ``` 接着你可以通过以下指令进行训练或推理: ``` python train.py --data data/customdata/custom.data --batch-size 10 --epochs 100 --img-size 416 --cfg cfg/yolov3-custom.cfg --weights weights/yolov3.weights ``` ``` python detect.py --image-folder data/samples/ --cfg cfg/yolov3-custom.cfg --weights weights/yolov3-custom.pt ``` 其中,--data指定训练集路径,--batch-size指定批量大小,--epochs指定训练次数,--img-size指定图像大小,--cfg指定配置文件路径,--weights指定权重文件路径。对于detect.py,--image-folder指定待预测图片文件夹,--cfg和--weights同上。 ### 回答2: 要下载pytorch-yolov3源码,可以采取以下步骤: 1. 打开互联网浏览器,搜索pytorch-yolov3源码。 2. 在搜索结果中找到合适的代码存储库或网站,如GitHub、GitLab等。 3. 点击该存储库的链接,进入项目主页。 4. 在项目主页上找到代码的下载选项,通常是一个绿色的“Download”按钮或类似的指示。 5. 点击下载按钮,并选择保存代码的位置。可能需要等待一段时间,直到下载完成。 6. 一旦下载完成,解压缩源码文件。可以使用文件解压缩工具,如WinRAR、7-Zip等。 7. 打开解压缩后的文件夹,其中应该包含pytorch-yolov3源码的所有文件和文件夹。 8. 确认您已经安装了适用于pytorch的Python运行时环境。如果没有,请先安装pytorch和其他必要的依赖项。 9. 接下来,您可以使用任何您喜欢的文本编辑器或集成开发环境(IDE)打开源码文件。 10. 您可以阅读、修改和运行源码,或者将其用作您自己项目的基础。 希望以上步骤能帮助您成功下载pytorch-yolov3源码并进行后续的使用和探索。如果有任何问题,请随时提问。 ### 回答3: 要下载PyTorch-YOLOv3源码,可以按照以下步骤进行操作。 首先,打开GitHub网站,并搜索PyTorch-YOLOv3。找到相应的仓库后,点击进入。 在仓库主页上,找到并点击绿色的按钮,上面标有“Code”字样。点击后会弹出一个下拉菜单,在菜单中选择“Download ZIP”。 接下来,等待一段时间,直到ZIP文件下载完成。下载完成后,可以在电脑上的默认下载文件夹中找到这个ZIP文件。 找到ZIP文件后,双击打开它,将会解压缩成一个文件夹。进入解压后的文件夹,你将能够看到PyTorch-YOLOv3的所有源代码文件。 可以使用任何文本编辑器或者Python开发环境来打开和查看这些源代码文件。你可以在源码中学习和理解PyTorch-YOLOv3的实现细节,也可以根据自己的需求进行修改和拓展。 当然,这只是简单介绍如何下载PyTorch-YOLOv3的源码。如果你想要更深入地了解和使用这个项目,建议查阅官方文档或者相关教程,这样能够获得更详细的指导和指示。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值