【Qt学习笔记】10.主窗口 The Main Window
一、工具栏和菜单
只有主框架窗口(QMainWindow)才能够添加菜单和工具栏
QAction 命令
步骤:
1、添加action (动作编辑器) (在Qt Designer 界面的右下角))
2、把action拖动到菜单或工具栏里
3、在代码里加上响应处理函数
示例代码:
Test10_1a_12_11::Test10_1a_12_11(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);assert(connect(ui.actionAct1,SIGNAL(triggered()),this,SLOT(OnHelpButton())));
}int Test10_1a_12_11::OnHelpButton()
{return 0;
}
接下来实现一个简单的应用。
二、单文档程序
单文档程序(Single Document):
只能编辑一个文档,如: Notepad、Word
多文档程序(Multiple Document):
可同时编辑多个文档,如:Notepad++,UltraEdit , 使用选项卡,每页代表一个文档
做一个简单的文本编辑器,实现以下功能:
1、打开文件
2、编辑文件
3、保存文件
程序示例:
Test10_1a_12_11::Test10_1a_12_11(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);assert(connect(ui.actionNew,SIGNAL(triggered()),this,SLOT(OnBtnNew())));assert(connect(ui.actionSave,SIGNAL(triggered()),this,SLOT(OnBtnSave())));assert(connect(ui.actionOpen,SIGNAL(triggered()),this,SLOT(OnBtnOpen())));
}int Test10_1a_12_11::OnBtnNew()
{ui.plainTextEdit->setEnabled(true);return 0;
}int Test10_1a_12_11::OnBtnSave()
{QString FilePath = QFileDialog::getSaveFileName(this, AfGbk::ToUnicode("保存在..."));if (FilePath.length() == 0){return -1;}//保存文件string FileName = AfGbk::FromUnicode(FilePath);string text = AfGbk::FromUnicode(ui.plainTextEdit->toPlainText()); //内容FILE* fp = fopen(FileName.c_str(), "wb");fwrite(text.c_str(), 1, text.length(), fp);fclose(fp);//状态栏显示ui.statusBar->showMessage(AfGbk::ToUnicode("保存成功..."), 3000); //状态 显示3秒return 0;
}int Test10_1a_12_11::OnBtnOpen()
{QString FilePath = QFileDialog::getOpenFileName(this, AfGbk::ToUnicode("打开文件..."));if (FilePath.length() == 0){return -1;}//读取文件内容string FileNameStr = AfGbk::FromUnicode(FilePath);FILE* fp = fopen(FileNameStr.c_str(), "rb");char buf[1024];int n = fread(buf, 1, sizeof(buf), fp);buf[n] = '\0';//显示到界面中QString text = AfGbk::ToUnicode(buf);ui.plainTextEdit->setPlainText(text);ui.plainTextEdit->setEnabled(true);return 0;
}
界面:
三、可停靠窗口 QDockWidget
在Qt中,可停靠窗口作为一种容器类型的控件
转载于:https://blog.51cto.com/zhweizhi/1881748
【Qt学习笔记】10.主窗口 The Main Window相关推荐
- QT学习笔记(摘抄)
QT学习笔记-1.QT主要的对象 说来惭愧学习c++很长时间了一直没有使用c++开发过软件界面 所以现在想认认真真的学习一个c++图形界面框架库 本来想学习Xwidget但是这个资料不大好找 有啥问题 ...
- QT学习笔记(六):Qt5主窗口框架示例
QT学习笔记(五):Qt5主窗口框架代码示例 一.添加编辑菜单:并在下拉菜单和工具栏中添加"打开文件"动作菜单 #include <QToolButton> #incl ...
- Qt 学习笔记(5)绘图 五子棋游戏
在上一篇博客C++ Qt学习笔记(4)绘图中介绍了Qt中的绘图方法,基于上一篇的博客的知识,使用QPainter设计一个五子棋的棋盘,后续会完成五子棋的游戏设计. 1. 棋盘的设计 首先需要绘制棋盘的 ...
- Qt学习笔记之数据库
一.数据库简介 1.1.数据和数据库(DB) 用计算机进行数据处理,首先就要把信息以数据形式存储到计算机中,故数据是可以被计算机接受和处理的符号.根据所表示的信息特征不同,数据有不同的类别,如数字.文 ...
- Qt学习笔记之 字符串类型小结
1. Qt常用字符串类型 1.1 QString QString是Unicode编码的字符串,存储一系列16位的QChar,每一个QChar对应一个Unicode 4.0编码的字符,详见<Qt学 ...
- QT学习笔记(十四):QLayout的属性介绍
QT学习笔记(十四):QLayout的属性介绍 主要包括QBoxLayout.和QGridLayout以及QFormLayout等的参数类似. 我主要说明一下QGridLayout在QtDesigne ...
- QT学习笔记(十):通用算法示例
QT学习笔记(十):通用算法示例 std是C++标准库统一使用的命名空间(namespace)的名称,C++标准库中的名字全部都在std这个命名空间中,std也就是英文"standard&q ...
- QT学习笔记(八):顺序容器和关联容器
QT学习笔记(八):顺序容器和关联容器 一.前言 二.容器介绍 2.1 顺序容器 2.2 关联容器 二.顺序容器示例 三.关联容器 一.前言 在Qt库中为我们提供了一系列的基于模板的容器类(conta ...
- QT学习笔记(五):Qt5的8种标准对话框示例
QT学习笔记(五):Qt5的8种标准对话框示例 前言 实例展示 1.颜色对话框 2.文件对话框 3.字体对话框 4.输入对话框 5.消息对框 6.进度对话框 7.错误信息对话框 8.向导对话框. 前言 ...
- QT学习笔记之对话框
QT学习笔记之对话框 对话框是一种用户界面(窗口),它的主要功能是输出信息和接收用户的输入.在每个对话框内一般都有一些控件,对话框依靠这些控件与用户进行交互. 1) 模式对话框:用户只能与 ...
最新文章
- P4factory ReadMe Quickstart 安装p4factory
- RDKit | RDKit(2019.09)新增相似性图函数
- wifi密码破解与攻击
- DDOS SYN Flood攻击、DNS Query Flood, CC攻击简介——ddos攻击打死给钱。限网吧、黄网、博彩,,,好熟悉的感觉有木有...
- matlab mod()rem()
- 【工具】jira + dingding 任务状态改变发送自定义消息
- Spring_JDBC连接
- fastjson jar包_Fastjsonlt;=1.2.47反序列化RCE漏洞(CNVD201922238)
- Linux下实现视频读取(二)---camera參数设定
- Sublime Text 3无法安装Package Control插件的解决
- Spring源码系列:BeanFactory的创建
- 【SRM-07 D】天才麻将少女KPM
- java考勤表导出_考勤表如何导出?
- java异步编程的面试_去年去阿里面试,被问到java 多线程,我是这样手撕面试官的...
- 苏大强患的“老年痴呆”,这家初创公司想提前15年检测
- 网页导出pdf不完整_又一种pdf文献全文一键免费翻译的方法
- icloud与mysql_ICloud 应用实例(一)
- 然并卵却很拉风!360超级充电器评测_天极网
- 用调整图层给照片上色
- Oracle table move tablespace