声明:此文章仅是个人在学习狄泰QT课程所做的笔记,文章中包含狄泰资料的,一切版权归狄泰软件所有!  

  

  第8课是来做一个计算器界面,只是一个界面显示。不过也是挺兴奋的,以前一直对着黑框框,现在终于到界面了。

  界面如下:

  

  在设计这个计算器的时候,需要有QLineEdit组件。

  

    -QLineEdit用于接受用户输入

    -QLineEdit能够获取用户输出的字符串

    -QLineEdit是功能性组件,需要父组件作为容器

    -QLineEdit能够在父组件中进行定位

  

1 QWidget w;//生成QWidget对象,顶级组件
2 QLineEdit le(&w);//生成QLineEdit对象,其父组件为QWidget
3
4 le.SetAlignment(Qt::AlingnRight);//设置显示字符串向右边对齐
5 le.move(10,10);//移动到坐标10,10
6 le.resize(240, 30);//设置大小width=240,height=30

  界面设计图如下:

  

    -定义组件间的间距

      Space = 10px

    -定义按钮组件大小

      Width = 40px, Height = 40px

    -定义文本框组件大小

      Width = 5 * 40px + 4*10px, Height = 30px

  设计与实现:

    -计算器程序不需要最大化和最小化按钮

    -计算器程序的窗口应该是固定化大小

    -文本框不能直接输入字符

  小结:

    -GUI应用程序开发应该前必须先进行界面设计

    -GUI应用程序界面需要考虑各个细节

      -界面决定最终用户的体验

      -界面细节是GUI应用程序品质的重要体现

    -QT库有能力实现各种GUI应用程序需求

    -QT帮助文档的使用对于开发是非常重要的。

  代码实例:

 1 /*加入QT头文件,编译环境QT5.8*/
 2 #include <QApplication>
 3 #include <QWidget>
 4 #include <QLineEdit>
 5 #include <QPushButton>
 6
 7
 8 int main(int argc, char *argv[])
 9 {
10     QApplication a(argc, argv); //初学还不太懂
11     QWidget* w = new QWidget(NULL, Qt::WindowCloseButtonHint);//定义一个窗口对象,并配置窗口类型
12     QLineEdit* le = new QLineEdit(w);//定义一个对话框对象
13     QPushButton* button[20] = {0};//定义一个对象数组,包括有20个按键
14
15     //按键的内容数组
16     const char* btnText[20]=
17     {
18       "7", "8", "9", "+", "(",
19       "4", "5", "6", "-", ")",
20       "1", "2", "3", "*", "<-",
21       "0", ".", "=", "/", "C",
22
23     };
24
25     int ret = 0;
26
27     le->move(10, 10);       //设置对话框对象位置于坐标10,10的位置
28     le->resize(240, 30);    //设置对话框大小240,30
29     le->setReadOnly(true);  //配置对话框不能输入
30
31     /*实现20个按键的排列及对按键内容的赋值*/
32     for(int i=0; i<4; i++)
33     {
34         for(int j=0; j<5; j++)
35         {
36             button[i*5 + j] = new QPushButton(w);//创建20个按键
37             button[i*5 + j]->resize(40, 40);//按键大小为40*40
38             button[i*5 + j]->move(10 + (10 + 40) * j,50 + ( 10 + 40)* i);//按键行和列间距
39             button[i*5 + j]->setText(btnText[i*5 + j]);//按键的字面值赋值
40         }
41     }
42
43
44
45     w->show();       //显示窗口
46     w->setFixedSize(w->width(), w->height());//配置窗口大小
47
48     return a.exec();//进入事件循环
49
50     delete w;       //释放堆空间
51     delete le;
52
53     return ret;
54 }

  实例效果图如下:

  

  当然现在只是一个界面,还得学会后面的知识才能实现这功能。一天进步一点。

  

转载于:https://www.cnblogs.com/qingfeng2018/p/6637626.html

QT学习第8课:QT计算器界面实现相关推荐

  1. 【QT学习笔记】基于QT的天气预报

    [QT学习笔记]基于QT的天气预报 前言 那就开始吧! 先看一下效果 颜面最重要,画个UI 构造实现 怎么开始? 开始解析数据 关于城市切换 ok 最后源码献上 感谢 前言 学习qt已经有一段时间了, ...

  2. qt学习总结之探索Qt的安装目录结构

    一般地,安装完一个软件后,我习惯到安装目录去看一下目录以及文件.对于Qt这样一个"复杂的软件",了解其文件目录结构虽然不是掌握编程所必须的,但是对其适当的了解能够让我们对 Qt 的 ...

  3. Qt学习之Windows下Qt应用程序打包成exe安装包

    本文介绍如何将exe可执行程序打包成exe安装包,打包完的安装包可以直接在Windows下安装,需要用到 Inno Setup 安装程序制作软件工具,工具下载完之后直接安装即可. 工具下载: 打包安装 ...

  4. QT学习-超漂亮的软件登录界面模块

    开发环境: window10.QT Create5.14.2 封装形式 生成动态库,包含.dll文件..a文件.h文件 调用方式 把dll动态库..a文件.h文件添加进自己的工程,在弹出软件主界面之前 ...

  5. 【Qt学习】网课P23-P28 各种控件的使用

    0421 P23  02登录窗口布局 界面的布局: 使用widget进行布局:水平.垂直.栅格 给用户名.密码.登录.退出按钮布局 使用弹簧:水平.垂直弹簧 首先拖拽几个控件: 编译生成程序,查看结果 ...

  6. 【QT学习】QSS样式表实现界面换肤(图文详解+源码)

    文章目录 前言 一.实现效果 二.QSS简介及用法 1.什么是QSS? 2.怎么使用QSS? 三.QSS用法一:单个控件调用setStyleSheet函数 四.QSS用法二:编写单个界面.qss文件的 ...

  7. QT学习笔记14(Qt模型视图结构)

    一.基础知识 1.MVC设计模式:是一种与用户界面相关的设计模式,通过此模式,可以有效的分离数据和用户界面. MVC包括三个要素: 表示数据的模型(Model):应用程序的对象 表示用户界面的视图(V ...

  8. Qt学习之路(17): Qt标准对话框之QMessageBox

    好久没有更新博客,主要是公司里面还在验收一些东西,所以没有及时更新.而且也在写一个基于Qt的画图程序,基本上类似于PS的东西,主要用到的是Qt Graphics View Framework.好了,现 ...

  9. Qt学习之路(35): Qt容器类之顺序存储容器

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/245988 本来计划 ...

最新文章

  1. CentOS 7 修改时区例如上海时区
  2. 大规模深度学习预测场景下 codegen 的思考与应用
  3. spring @Order注解
  4. ATT开源项目反客为主
  5. java 3位小数_数字有效小数第三位四舍五入
  6. extends 和super 泛型限定符-上界不存下界不取
  7. SQL多条件查询拼接in中条件方法
  8. 计算机普通用户禁止修改c盘,win10系统禁止Guest账户访问C盘的设置技巧
  9. html右侧文字左对齐,HTML文字怎么左对齐
  10. 解决基于html5video标签多个视频同时播放的问题
  11. emwin模拟器编译环境搭建及helloworld例程
  12. 《2022 数字时代|元宇宙产业发展高峰论坛》圆满落幕
  13. 猴子选大王(c语言)
  14. 弘辽科技:丁真一夜爆红背后的直播发展趋势
  15. 树莓派基于ffmpeg+阿里云流媒体服务器实现视频直播
  16. CVPR 2021 全部论文链接公布!最新1660篇论文合集!附下载链接
  17. U盘防毒最强方案(创建删不掉的autorun.inf文件夹)
  18. 羽毛球馆场地管理系统的设计与实现
  19. python 汉字数字转阿拉伯数字
  20. 小学四年级数学上册计算机算题,小学四年级数学上册计算练习题

热门文章

  1. java redis管理_优雅时间管理Java轻松做到,想学么?
  2. hdu 2665(主席树查询区间k大值)
  3. 从头开始学python教程_怎样开始自学Python?
  4. 计算机专业黑板报迎新,大学开学迎新黑板报
  5. windows php-cgi命令选项,windows平台上php-cgi调用系统命令(net)时执行异常,但在命令行下能正常执行,问题会出在哪呢?...
  6. 主流家用计算机,年终聊装机 主流家用电脑怎么选CPU?
  7. 浅谈Chatbot的架构模型和响应机制
  8. 卷积神经网络基础:(6)卷积神经网络原理
  9. ROS系统——动态修改realsense相机参数方法
  10. R6010-abort() has been called,Error openning file ../../modules/highgui/src/cap_ffmpeg_impl.hpp解决方法