QT学习笔记(六):Qt5主窗口框架示例

QT学习笔记(五):Qt5主窗口框架代码示例

一、添加编辑菜单:并在下拉菜单和工具栏中添加“打开文件”动作菜单

#include <QToolButton>
#include <QSpinBox>
#include <QTextEdit>
#include <QMdiSubWindow>
#include <QLabel>
// 1.添加菜单:文件
QMenu *fileMenu = ui->menuBar->addMenu(tr("文件(&F)"));
// 2.添加动作:打开文件
QAction *action_new = fileMenu->addAction(QIcon(":/image/images/new.png"),tr("新建文件(&N)"));
// 3.为打开文件动作:设置快捷键:
action_new->setShortcut(QKeySequence("Ctrl+N"));
// 4.获取工具栏,在工具栏中添加:“新建文件”动作菜单
ui->mainToolBar->addAction(action_new);
// 同理
QMenu *editMenu = ui->menuBar->addMenu(tr("编辑(&E)"));
QAction *action_Open = editMenu->addAction(QIcon(":/image/images/open.png"),tr("打开文件(&O)"));
action_Open->setShortcut(QKeySequence("Ctrl+O"));
ui->mainToolBar->addAction(action_Open);

二、建立动作组:并添加包含3个动作菜单:左对齐、右对齐、居中

QActionGroup *group = new QActionGroup(this);				 // 0.建立动作组QAction *action_L = group->addAction(tr("左对齐(&L)"));       // 1.向动作组中添加动作:左对齐
action_L->setCheckable(true);                                // 2.设置动作checkable属性为true
action_L->setChecked(true);        							 // 3.最后指定action_L为选中状态
QAction *action_R = group->addAction(tr("右对齐(&R)"));
action_R->setCheckable(true);
QAction *action_C = group->addAction(tr("居中(&C)"));
action_C->setCheckable(true);editMenu->addSeparator();     	  // 4.向菜单中添加间隔器
editMenu->addAction(action_L);    // 5.向菜单中添加动作:左对齐
editMenu->addAction(action_R);    // 6.向菜单中添加动作:右对齐
editMenu->addAction(action_C);    // 7.向菜单中添加动作:居中

三、工具栏中添加其他窗口部件:按钮,微调框

QToolButton *toolBtn = new QToolButton(this);           // 1.创建QToolButton 类对象:toolBtn(工具栏按钮“颜色”)
ui->mainToolBar->addWidget(toolBtn);                    // 2.将toolBtn按钮添加到工具栏
toolBtn->setText(tr("颜色"));							// 3.设置toolBtn按钮名称QMenu *colorMenu = new QMenu(this);                     // 4.创建一个菜单 (colorMenu)
colorMenu->addAction(tr("红色"));                       // 添加动作菜单:红色
colorMenu->addAction(tr("绿色"));                       // 添加动作菜单:绿色
toolBtn->setMenu(colorMenu);                            // 5.将菜单(colorMenu)添加进工具栏按钮(toolBtn“颜色”)中
toolBtn->setPopupMode(QToolButton::MenuButtonPopup);    // 设置菜单弹出模式QSpinBox *spinBox = new QSpinBox(this);                 // 6.创建QSpinBox
ui->mainToolBar->addWidget(spinBox);                    // 7.向工具栏添加QSpinBox部件

四、生成状态栏

    //ui->statusBar->showMessage(tr("欢迎使用多文档编辑器"), 5000);     // 1.显示临时消息,显示2000毫秒即2秒QLabel *normal_label = new QLabel(this);                          // 2.创建标签(用于生成正常消息)normal_label->setFrameStyle(QFrame::Box | QFrame::Sunken);normal_label->setText("hahahaha");ui->statusBar->addWidget(normal_label);              			  // 3.添加标签至状态栏(用于生成正常消息,可能被临时消息覆盖)QLabel *permanent = new QLabel(this);                             // 4.创建标签(用于生成永久消息)permanent->setFrameStyle(QFrame::Box | QFrame::Sunken);           // 5.设置标签样式并显示信息,permanent->setText("www.qter.org");ui->statusBar->addPermanentWidget(permanent);                     // 6.然后将其以永久部件的形式添加到状态栏

多文档编辑器:新建一个文本编辑器部件

QTextEdit *edit = new QTextEdit(this);                       // 1.以文本编辑器为中心部件
QMdiSubWindow *child = ui->mdiArea->addSubWindow(edit);      // 2.使用QMdiArea::addSubWindow()函数创建子窗口
child->setWindowTitle(tr("多文档编辑器子窗口"));
child->show();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491277.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch 为什么每一轮batch需要设置optimizer.zero_grad

根据pytorch中的backward()函数的计算&#xff0c;当网络参量进行反馈时&#xff0c;梯度是被积累的而不是被替换掉&#xff1b;但是在每一个batch时毫无疑问并不需要将两个batch的梯度混合起来累积&#xff0c;因此这里就需要每个batch设置一遍zero_grad 了。 其实这里还可以…

ARM与RISC-V之争,后起之秀的优势在哪儿?

来源&#xff1a;朗锐智科从2010年夏天开始&#xff0c;伯克利研究团队大约花了四年的时间&#xff0c;设计和开发了一套完整的新的指令集。这个新的指令集叫做RISC-V&#xff0c;指令集从2014年正式发布之初就受到多方质疑&#xff0c;到2017年印度政府表示将大力资助基于RISC…

QT学习笔记(六):QString::arg()函数用法小结

QT学习笔记&#xff08;五&#xff09;&#xff1a;Qt5的QString的arg用法 在QT的QString中&#xff0c;arg方法类似于C中的printf中使用的格式输出符&#xff08;只是有点类似&#xff09;。 在QT5的帮助文档中&#xff0c;可以看出以下几点&#xff1a; 使用arg(str1, str2,…

RuntimeError: DataLoader worker (pid(s) 13512, 280, 21040) exited unexpectedly

pytorch出现这个错误&#xff0c;是因为正在运行的主程序缺少 if __name__ __main__: 在运行的主程序代码之前加上这一句

第三周总结

在第三周的学习中&#xff0c;我们主要学习了循环语句&#xff08;while&#xff0c;do/while,for循环&#xff09;&#xff0c;数组&#xff0c;方法。而重点就在for循环和方法。而对于for循环我要做的就是多练&#xff0c;深入了。但对于方法这一块&#xff0c;我连有时候该怎…

道阻且长,Libra 项目负责人长文回应一切质疑

来源&#xff1a;星球日报当地时间 7 月 3 日&#xff0c;Facebook Libra 项目负责人 David Marcus 于个人 Facebook 发布长文《Libra, 2 weeks in》&#xff0c;就过去两周 Libra 所遇到的一些质疑及误解进行解释。以下为全文内容&#xff1a;自 Libra 正式公开已经两周了&…

QT学习笔记(七):定时器事件的3种常用使用方式

QT学习笔记&#xff08;七&#xff09;&#xff1a;定时器事件的2种常用使用方式 Qt中定时器的使用有2种方法&#xff1a;一种是使用QObject类提供的定时器通过重载 timerEvent 事件处理过程函数&#xff0c;一种就是使用QTimer类。 其中QTimer 类来实现定时器使用的更多&…

pytorch保存模型时报错***object has no attribute 'state_dict'

定义了一个类BaseNet并实例化该类&#xff1a; netBaseNet() 保存net时报错object has no attribute state_dict torch.save(net.state_dict(), models_dir) 原因是定义类的时候不是继承nn.Module类&#xff0c;比如&#xff1a; class BaseNet(object):def __init__(self…

LightOJ - 1140 How Many Zeroes?

Description Jimmy writes down the decimal representations of all natural numbers between and including m and n, (m ≤ n). How many zeroes will he write down? Input Input starts with an integer T (≤ 11000), denoting the number of test cases.Each case cont…

​机器学习算法优缺点对比及选择(汇总篇)

转自&#xff1a;机器学习与统计学本文的目的&#xff0c;是务实、简洁地盘点一番当前机器学习算法。文中内容结合了个人在查阅资料过程中收集到的前人总结&#xff0c;同时添加了部分自身总结&#xff0c;在这里&#xff0c;依据实际使用中的经验&#xff0c;将对此模型优缺点…

pytorch加载的模型测试的结果和保存时测试的结果不一致

假设有一个dropout网络net&#xff0c;训练过程中用测试集进行了测试&#xff0c;接着将该网络进行了保存 torch.save(net.state_dict(), path) 然后将保存的网络加载出来&#xff1a; netclass_net() # 先定义net的结构 net.load_state_dict(torch.load(path)) 接着用同样…

QT学习笔记(八):顺序容器和关联容器

QT学习笔记&#xff08;八&#xff09;&#xff1a;顺序容器和关联容器一、前言二、容器介绍2.1 顺序容器2.2 关联容器二、顺序容器示例三、关联容器一、前言 在Qt库中为我们提供了一系列的基于模板的容器类(container classes)。这些类可以被用来存储特定类型的项(items)。例…

页面的缓存与不缓存设置

HTML的HTTP协议头信息中控制着页面在几个地方的缓存信息&#xff0c;包括浏览器 端&#xff0c;中间缓存服务器端(如&#xff1a;squid等)&#xff0c;Web服务器端。本文讨论头信息 中带缓存控制信息的HTML页面(JSP/Servlet生成好出来的也是HTML页面)在中间缓存服务器中的缓存情…

MATLAB警告: 矩阵为奇异工作精度

原因是在求逆的时候使用了inv函数&#xff0c;而inv函数对于不是可逆矩阵的矩阵求逆就会出错 将inv函数改为pinv函数&#xff0c;pinv就是对不是可逆矩阵的矩阵求伪逆

QT学习笔记(九):遍历容器-迭代器(iterators)

QT学习笔记&#xff08;九&#xff09;&#xff1a;遍历容器-迭代器&#xff08;iterators&#xff09;遍历容器 &#xff1a;1、Jave风格:2、STL风格:3、foreach 关键字:遍历容器 &#xff1a; 遍历一个容器可以使用迭代器&#xff08;iterators&#xff09;完成&#xff0c;…

pytorch自定义数据集和数据加载器

假设有一个保存为npy格式的numpy数据集&#xff0c;现在需要将其变为pytorch的数据集&#xff0c;并能够被数据加载器DataLoader所加载 首先自定义一个数据集类&#xff0c;继承torch.utils.data.Dataset类 在这个类中要实现__init__&#xff0c;__getitem__&#xff0c;__le…

jQuery 插件格式 规范

方式一&#xff08;自定义对象&#xff09;&#xff1a;(function($, window, document) { var Plugin, defaults, pluginName;调用时的函数名&#xff1a;pluginName "slidesjs";默认配置&#xff1a;defaults {width: 940,height: 528,callback: {loaded: functio…

QT学习笔记(十):通用算法示例

QT学习笔记&#xff08;十&#xff09;&#xff1a;通用算法示例 std是C标准库统一使用的命名空间(namespace)的名称&#xff0c;C标准库中的名字全部都在std这个命名空间中,std也就是英文"standard"&#xff08;标准&#xff09;的缩写。 #include <QCoreAppl…

Input type (torch.cuda.DoubleTensor) and weight type (torch.cuda.FloatTensor) should be the same

原因是没有把输入数据类型转为float类型 首先找到代码出错的位置&#xff0c;将该处的数据类型转为float类型&#xff1a; x x.type(torch.FloatTensor)

了解因果论:从珀尔的《为什么》开始

图I&#xff1a;AI从达特茅斯会议&#xff08;1956年&#xff09;得名至今已有六十年&#xff0c;期间几起几落&#xff0c;群星璀璨&#xff0c;像一个大舞台&#xff0c;你方唱罢我登场&#xff0c;留下了一些永载史册的理论和成就&#xff0c;但涉及因果的甚少作者&#xff…