- 博客(31)
- 资源 (8)
- 收藏
- 关注
原创 设计模式-----------------(Interpreter模式)解释器模式
解释器的目的就是使用一个解释器为用户提供一个一门语言的语法表示的解释器,然后通过这个解释器来解释语言中的句子。下面就来写下这个结构图的具体实现。class Context; class AbstractExpression; class TerminalExpression:public AbstractExpression; class NonterminalExpression: publ
2015-09-29 15:44:43 348
原创 Josephus问题求解
今天徒弟问了我这样的一个问题,当时想了很久才把他解决了。其实也不是什么很难得问题,主要是自己的思维被局限了。被局限到那些所谓的库了,比如STL什么的了。所以一时没有想到什么好办法,后来才想到用循环链表去解决它。下面就来学习下这个问题吧。 编号为1 ,2 ,3 …..,n的n个人按顺时针方向围坐成一圈,每个人持有一个密码,现在给定一个随机数m> 0 , 从编号为1的热开始,按照顺时针顺序从1开始报数
2015-09-24 23:38:52 947
原创 qml学习--------------图形的变换
qml也能像qt 中的QPainter一样,支持多种图形变换,比如:tranlsate() , rotate() , scale() , shear()等。 要注意的就是translate使用的原点是当前的原点,所以在使用后最后把它平移到以前的原点去。下面就通过一个具体的例子学习:import QtQuick 2.2Canvas{ width: 480; height: 640;
2015-09-23 13:21:45 967
原创 qml学习--------------利用Canvas绘制图片
Context2D中有三种不同的方式来绘制图片,其中的image可以是一个image元素,一个图片URL,或者是CanvasImageData。import QtQuick 2.2Rectangle{ width: 480; height: 400; id: root; //绘制一个随机像素的图片 Canvas{ id: randomImageDat
2015-09-23 11:28:11 5331
原创 qml学习---------------利用Canvas绘制文本
在利用Canvas绘制文本的时候,可以指定文本不同的风格。 Context2D中和文本相关的方法有3个: fillText() , strokeText() , text();使用方法就下面两种: ctx.beginPath(); ctx.text(“stroken text” ,100 , 100); ctx.stroke();或者是另外的一种使用方法: ctx.strokeText(“
2015-09-23 11:23:08 3260
原创 qml学习--------------利用Canvas绘制简单图形
在qml中,要实现绘图,就必须要用到下面的东西: Canvas: 画布 context: 画师 Pen: 画笔 Brush: 画刷 坐标系: qml中,画布的原点是在左上角的。在qml中要设置上面的属性需要通过一下的代码来实现:在onPaint信号中 { var ctx = getContext(“2d”); ctx.lineWidth = 2; ctx.strokeStyle
2015-09-23 11:19:24 6613
原创 qml学习-------------Slider(滑块)
Slider跟其他的控件一样,可以通过SliderStyle来设置滑块的风格。import QtQuick 2.2import QtQuick.Controls 1.2import QtQuick.Controls.Styles 1.2Rectangle{ width: 320; height: 240; color: "lightgray"; Row{
2015-09-22 13:36:50 5750
原创 qml学习------------------TabView
本次学习了tabview的使用,tabview的使用非常简单的,但是要做出非常漂亮的TabView就很难了,就需要依靠他的TabViewStyle来自定义属性了。import QtQuick 2.2import QtQuick.Controls 1.2import QtQuick.Controls.Styles 1.2import QtQuick.Layouts 1.1Rectangle{
2015-09-22 13:07:11 3552 1
原创 qml学习----------------(progressBar)进度条的学习
今天学习了进度条的使用。查了下qt的官方文档,进度条主要有以下的属性 hovered : bool indeterminate : bool maximumValue : real minimumValue : real orientation : int //决定是水平的还是竖直的 style : Component value : real可以通过style来加载一个progre
2015-09-22 10:31:32 8970 3
原创 qml学习-----------GroupBox(分组框)和ComboBox(组合框)
在日常软件中,分组框和组合框也是经常用到的,其中组合框是有一个单行编辑框和一个下拉菜单组成的。 它的值可以通过model , 或者ListModel来进行操作。 然后也可以像单选框复选框一样的来自定义风格。下面就来一起学下把:import QtQuick 2.2import QtQuick.Controls 1.2import QtQuick.Controls.Styles 1.2Recta
2015-09-21 16:17:29 5028
原创 qml学习----------(CheckBox)复选框的使用
在qml中,复选框跟单选框的用法差不多,只是多了几个属性。CheckBoxStyle用法也跟RadioBoxStyle一样,下面还是来看看学习的代码把:import QtQuick 2.2import QtQuick.Controls 1.2import QtQuick.Controls.Styles 1.3Rectangle{ width: 320; height: 300;
2015-09-21 16:13:02 6941
原创 qml学习------------(RadioButton)单选框
本次学习了qml中的单选框的使用,在单选框的使用过程中,用到了一些的关联的东西,这里都来总结下,当做学习。 1。ExclusiveGroup (互斥分组),用来将若干个元素组合在一起,只需要设置一个id就是了 2. 定了单选框的风格组件(Component),在其中通过RadioButtonStyle来设置 单选框的风格,同时设置选中状态下的文本颜色其他的东西都在以前都学过了,都是一些常用的组
2015-09-18 15:24:48 5535
原创 qml学习------------GridLayout
在qml中,除了定位器,还有另外一套布局,叫做布局管理器。布局管理器和Qt Widgets中的相似,他和定位器不同的是Item会自动调整Item的尺寸来使用界面的大小。这点跟Qt中的布局是完全相同的。要使用Layouts ,比如引用他的模块 import QtQuick.Layouts 1.1GirdLayout可以说是布局管理器中最复杂的,RowLayout和ColumnLayout可以说是Gr
2015-09-17 09:58:07 1706 1
原创 qml学习----------Flow(流式布局)
Flow布局和Grid布局有点类似,但是Flow没有行列属性, 他会自动根绝宽高来计算item的行列。import QtQuick 2.2Rectangle{ width: 360; height: 240; color:"#eeeeee"; id: rootItem; Text{ id: centerText; text:"A
2015-09-16 16:11:17 4755
原创 qml学习------------Grid(网格布局)
Grid网格布局就是在网格上面安置Item,可以通过设置他的rows, columns来控制网格的行列书,Grid默认的是4*4的, Grid默认的流是LeftToRight, 从左到右安置Item,一行放满再放到下一行中,可以通过修改Grid的flow属性来控制他,比如修改成TopToBottom。下面就来学习下网格布局吧。import QtQuick 2.2Rectangle{ width
2015-09-16 15:54:52 5005 1
原创 qml学习-------------row布局
在qml中也有类似QWidget那样的布局,是采用定位器来进行布局的。 定位器主要包括: 行定位器(Row), 列定位器(Column),Flow(流定位器),Grid(网格定位器)等。这些定位器的使用其实都还是很简单的,都不用像anchors那样一个个的去布局,只用在其中使用Item就可以了,同时还可以通过他的附加Positioner来获取Item在Row中的位置等。下面来看下Row布局的使用
2015-09-16 15:29:49 2293
原创 qml学习-------------使用Loader动态创建和删除组件
在qml中,对于里面的删除机制是这样的,当不需要一个组件的时候,只需要把它的source = “”, 或者是sourceComponent = undefined; 就可以了 。所以采用一个Button来控制组件是否显示的逻辑肯定就是下面这样的, 关联一个bool类型的变量来控制是否显示, Button的点击事件响应的时候,就处理它,判断bool类型的变量,如果为真,就删除组件,如果为假,就添
2015-09-16 14:18:25 5165
原创 qml学习------------从文件加载组件
在使用Loader来加载定义的一个独立的组件的时候,可以使用Loader的source来进行加载。 具体源码如下:import QtQuick 2.2Rectangle{ width: 320; height: 240; color:"#eeeeee"; Text{ id:coloredText; anchors.horizontalCe
2015-09-16 13:44:38 632 1
原创 qml学习----------使用Loader来加载组件和处理按键消息
Loader在qml中可以作为占位符来使用,在需要显示某个元素的时候,才使用Loader把它加载进来。 Loader可以使用它的souce属性来加载夜光QML文档,也可以通过sourceComponent属性来加载一个Component组件,但是如果Loader加载的Item想要处理按键事件的话,就必须将Loader对象的focus属性设置为true。同时因为Loader本身也是一个焦点敏感的对象
2015-09-16 13:27:38 3101
原创 qml学习--------------Component(组件)学习
Component是Qt框架或者开发者封装好的,只暴露必要接口的QML类型,可以重复利用。一个QML组件就像是一个黑盒子,他通过属性,信号,函数和外部交互。 一个QML组件可以定义在独立的QML文件中,也可以嵌入到其他的QML文档中来定义。嵌入式的定义组件Component{ id: colorComponent; Rectangle{ id: colorPicker
2015-09-16 12:27:49 6445
原创 qml学习-----------定时器的使用
本节课学习了定时器的使用,定时器,顾名思义,就是按周期触发一个时间响应。 在qml中,是中Timer类来表示定时器的,其中具体的属性 interval : int repeat : bool running : bool triggeredOnStart : bool信号:triggered()方法: restart() start() stop()下面就以一个具体的例子来学习定时器
2015-09-14 09:53:21 8171
原创 qml学习-----------按键消息处理
本次学习了如何处理qml中的按键消息,其实也很简单,主要就是有个消息传递的问题需要处理。 如果不向下传递消息,后面则无法接收到按键消息了。 下面就是具体的例子:import QtQuick 2.2import QtQuick.Controls 1.2Rectangle{ //窗口的宽度 width: 320; //窗口的高度 height: 480; /
2015-09-11 15:59:57 3013
原创 qml学习--------------鼠标事件响应
在进行日常的桌面应用中,鼠标点击事件肯定是必不可少的。今天我们要学习的第一个例子就是鼠标点击实现窗口变色和退出的例子。import QtQuick 2.2Rectangle{ width: 320; height: 240; MouseArea{ anchors.fill: parent; acceptedButtons: Qt.LeftButton
2015-09-11 15:08:35 5847
原创 qml学习------------信号和槽的连接
在qt中肯定经常用到信号和槽的连接,在qt中是通过connnect来实现信号和槽的连接的,在qml中也可以连接它。下面来看个简单的例子把。import QtQuick 2.2Rectangle{ id: forwarder; width: 100; height: 100; signal send(); onSend: console.log("Send lic
2015-09-11 14:52:45 4049
原创 Qt Quick中的信号机制
在qt quick中信号处理同样离不开信号和槽,在qt quick中处理信号主要用到的是信号处理器,附加信号处理器,Connections来处理信号的。 1.首先介绍下信号处理器 Rectangle{ Button{ … onClicked:{ } … }}在信号onClicked后面跟了一个匿名函数,来处理信号的。2.附加信号处理器Item{… …keys.onReturnPre
2015-09-06 17:32:07 836
原创 qml-------------实现一个简单的图片加载程序
上节课中学习了如何加载一个网络图片,这节课接着上节课的代码来写一个图片加载程序。首先,可以重用上节课中的图片加载的代码。新添加的东西就是,一个button,一个Text文本标签,一个FileDialog文件对话框。具体代码如下:import QtQuick 2.2import QtQuick.Window 2.1import QtQuick.Controls 1.2import QtQuick
2015-09-06 10:40:58 4859
原创 qml---------------显示网络图片
在日常开发中,图片的加载肯定是必不可少的,这节课学习了关于网络图片加载。import QtQuick 2.2import QtQuick.Window 2.1import QtQuick.Controls 1.2Rectangle{ width: 480; height: 320; color: "#121212"; //用来等待一个图元,可以缓解用户的焦躁情绪
2015-09-06 09:40:59 2176
原创 qml学习---------------Button属性
本来学习了qml中的button,其实qml中的button跟qtQPushButton以及其他语言中的按钮是相同的。首先通过一个简单的例子来学习button。import QtQuick 2.2import QtQuick.Window 2.1import QtQuick.Controls 1.2Rectangle{ width: 320; height: 240; c
2015-09-02 14:45:39 12859 1
原创 qml学习---------------Text属性
明天就9月三号了,本来今天请假耍了一天就可以休假4天的,但是下午却被喊过来加班了,有点点的不开心,问题是两个问题分分钟就做完了,所以只有接着学习qml了。 在本次中学习了qml中Text属性。 Text元素可以显示纯文本或者是富文本(用html修饰的文本)。他有font, text, color , elide, textFormat, wrapMode , horizontalAlignme
2015-09-02 14:26:53 7129
转载 在你步入职业软件开发生涯那天就该知道的5件事
1.软件开发中没有“正确的方式“在我开发生涯的早期,我在学习和争论上浪费了大量的时间。我错误地认为,在软件开发的诸多方面都存在一种绝对”正确的方式“。但是,关于软件开发,几乎每一件我当时认为是正确的事到头来都被证明是错的。更重要的是,我发现几乎没有任何一件事是非黑即白的。在编写代码和开发软件的过程中,几乎所有的决策都是基于当时特定的情形。我之前已经谈过为什么信仰一种技术对开发人员有害,但是我现在说的
2015-09-01 17:21:49 408
转载 明星软件工程师的10种特质
感谢GG的投递 如今,每家公司都似乎成了科技公司。从软件创业公司到投机性投资公司、制药巨头和媒体巨头,它们都越来越多地加入到软件业务行列。代码质量不仅成为了一个必需品,更成为了一个竞争优势。因为众多公司围绕软件而竞争,开发软件的人——软件工程师正显得越发重要。但是,你该如何发现那种百里挑一的程序员呢?在本文中,我们简明扼要地列出了明星开发人员的10种特质。热爱编程完成事情持续重构代码使用设
2015-09-01 17:19:26 371
The Swift Programming Language
2014-06-03
windows网络编程
2013-12-20
深度探索c++对象
2013-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人