gui

GUI程序原理分析

被刻印的时光 ゝ 提交于 2020-02-17 06:00:59
文章目录 1 命令行应用程序 2 图形界面应用程序 1 命令行应用程序 命令行应用程序的特点(Command Line Interface): 是一种基于顺序执行结构的可执行程序。 程序执行过程中不需要与用户产生交互。 程序执行后会给出最终的运行结果。 比如: gcc a.c b.c c.c ,编译过程中不产生用户交互,编译结束后或者生成可执行程序或者给出错误信息。 命令行应用程序的运行模式: 命令行应用程序适用于: 单任务场合。 无交互或简单交互场合。 服务器应用场合。 命令行应用程序是早期计算机系统中的主要程序类型。 2 图形界面应用程序 图形界面应用程序的诞生: 随着计算机技术的发展,计算机走进日常生活。 计算机程序开始需要处理各个领域中的问题。 计算机用户已经不再是专业的计算机工作者。 问题:如何让计算机程序更好的适应普通用户并走进日常生活? 图形界面应用程序的特点(Graphic User Interface): 是一种基于消息驱动模型的可执行程序。 程序的执行依赖于用户的交互过程。 程序执行过程中实时响应用户操作。 一般情况下程序执行后不会主动退出。 图形界面应用程序的运行模式: 图形界面应用程序的消息处理模型: 图形界面应用程序适用于: 多任务场合。 强用户交互的场合。 非专业计算机用户。 图形界面应用程序是当代计算机系统中的主要程序类型。 当代大型软件产品架构模型:

python GUI demo(tkinter)

醉酒当歌 提交于 2020-02-15 00:57:21
想了比较久用python做一个GUI的demo,还是用tkinter做一个小demo,版本python3.7下可行,代码如下: 1 #!/usr/bin/env python3 2 # -*- coding: utf-8 -*- 3 4 from functools import partial 5 import os 6 from time import sleep 7 from tkinter import * 8 9 class Application: 10 11 def __init__(self,initdir = None): 12 self.initdir = initdir 13 14 def ui_process(self): 15 root = Tk() 16 # 设置窗口位置 17 root.title("gui demo5 ") 18 self.root = root 19 #self.center_window(root, 600, 565) 20 #root.resizable(0, 0) # 框体大小可调性,分别表示x,y方向的可变性 21 self.label = Label(self.root,text='Directory Lister v1.1') 22 self.label.pack() 23 24 self.cwd = StringVar

李晓菁201771010114《面向对象程序设计(java)》第十二周学习总结

元气小坏坏 提交于 2020-02-14 16:49:41
一:理论部分 1.(1) 用户界面(User Interface)用户与计算机系统(各种程序)交互的接口 (2)图形用户界面(Graphical User Interface)以图形方式呈现的用户界面 2.AWT:Java 的抽象窗口工具箱( Abstract WindowToolkit, AWT)包含在java.awt包中,它提供了许多用来设计GUI的组件类和容器类。 . AWT库处理用户界面元素的方法:把图形元素的创建和行为委托给本地GUI工具箱进行处理。 . 应用AWT编写依赖于本地用户界面元素GUI会暴露出一些缺陷。例如,菜单、滚动条和文本域这些 用户界面元素,在不同的平台上,操作行为上存在一些微妙的差异。 3.Swing: Swing用户界面库是非基于对等体的GUI工具箱。  Swing具有更丰富并且更方便的用户界面元素集合。  Swing对底层平台的依赖很少,因此与平台相关的bug很少。  Swing会带来交叉平台上的统一视觉体验。  Swing类库被放在javax.swing包里。 4.AWT与Swing的关系 大部分AWT组件都有其Swing的等价组件。  Swing组件的名字一般是在AWT组件名前面添加一个字母“J”,如:JButton,JFrame,JPanel等。 二..创建框架 1.组件:构成图形用户界面的元素,拿来即用用图形表示(能在屏幕上显示

GUI的终极选择:Tkinter13:布局管理器

早过忘川 提交于 2020-02-12 11:27:53
※什么是布局管理器?就是负责管理各大组件的排列,Tkinter提供了三大布局管理器,分别是pack、grid和place,下面一个一个介绍 ##pack ※ pack :pack 是按添加顺序排列组件 对比 grid 管理器,pack 更适用于少量组件的排列,但它在使用上更加简单(就像我们前边所有的例子中,展示一个组件我们一般都直接使用 .pack(),多简单~)。如果你需要创建相对复杂的布局结构,那么建议是使用多个框架(Frame)结构构成,或者使用 grid 管理器实现。 注意:不要在同一个父组件中混合使用 pack 和 grid,因为 Tkinter 会很认真地在那儿计算到底先使用那个布局管理器…以至于你等了半个小时,Tkinter 还在那儿纠结不出结果! 下面来演示将一个组件放进另一个组件里,并且要求是填充另一个组件 from tkinter import * root = Tk ( ) listbox = Listbox ( root ) listbox . pack ( fill = BOTH , expand = True ) for i in range ( 10 ) : listbox . insert ( END , str ( i ) ) mainloop ( ) (解析:这里用的是listbox组件放到root窗口也是组件,实例化好后,接着用pack来布局

基于GUI的简单聊天室01

拈花ヽ惹草 提交于 2020-02-12 07:31:10
运用了Socket编程,gui,流的读入和写出,线程控制等 思路: 1、首先是在客户端中先建立好聊天的GUI 2、建立服务器端,设置好端口号(用SocketServer),其中需要两个boolean变量来分别表示服务器是否已经开启和是否有客户端连接进来,   利用while循环来让服务器在开启的情况下不断接收客户端的信息。利用DataOutputStream来进行通讯 3、客户端连接服务器(Socket) 首先是客户端的类 1 import java.awt.BorderLayout; 2 import java.awt.event.ActionEvent; 3 import java.awt.event.ActionListener; 4 import java.awt.event.WindowAdapter; 5 import java.awt.event.WindowEvent; 6 import java.io.DataOutputStream; 7 import java.io.IOException; 8 import java.net.Socket; 9 import java.net.UnknownHostException; 10 11 import javax.swing.JFrame; 12 import javax.swing.JTextArea; 13

【Unity】GUI(二)

早过忘川 提交于 2020-02-10 23:56:07
上一章介绍了GUI的基础概念:什么是GUI、GUI的两种模式(immediate mode, retained mode)。本章详细介绍如何使用基于retained mode 的GUI编辑系统。 1. 创建Canvas Canvas是一切GUI元件的基础,所有的GUI都必须附在Canvas上(Unity官方原文是 All UI elements must be children of a GameObject that has a Canvas component attached. )。 Canvas有三种渲染模式 Screen Space - Overlay 所有的UI元件都渲染在屏幕视野的最顶层( 没有相机时,Canvas上的UI也能照常渲染 )。无论相机对准何处、摄影角度如何、与Canvas的距离有多远,UI的大小样貌会一直保持不变(因为与相机不相关, without reference with camera ),屏幕大小、分辨率改变了,UI也会跟着自动调整适应( automaitcally rescale to fit )。 特点: (1)UI大小不会受相机的影响,屏幕大小、分辨率改变时UI能自动缩放以适应。 (2)UI不会被游戏内物体遮挡 Sreen Space - Camera UI元件大小不会因相机远近、拍摄位置、角度而改变

Linux 图形界面的显示原理是什么?

偶尔善良 提交于 2020-02-10 17:31:53
传统的Linux图形界面基于Xwindow系统(wayland什么的先不说)分为两部分,一部分是Xserver,这一部分负责驱动显卡和在屏幕上绘图,另一部分是client,这一部分包括window manger以及各种GUI应用比如浏览器之类。这两部分通过X定义的一套协议进行交互,这个协议是网络透明的,也就是说Xserver和X client可以不在同一台机器上,所以X天生支持远程图形界面,但代价就是在本地跑的时候性能也会有损失。 作者:徐辰 链接:https://www.zhihu.com/question/321725817/answer/669098291 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https://www.cnblogs.com/feng9exe/p/12291561.html

十二、GUI设计-画图程序

跟風遠走 提交于 2020-02-09 20:27:14
"""小小画笔"""from tkinter import *from tkinter.filedialog import *from tkinter.colorchooser import *height_root = 450width_root = 900class Application(Frame): def __init__(self, master=None,bgcolors="#000000"): super().__init__(master) # super()代表的是父类的定义,而不是父类对象 self.master = master self.bgcolors = bgcolors self.pack() self.createWidget() self.x = 0 self.y = 0 self.fgcolor = "#ff0000" self.lastdrawLine = 0 self.drawFlag = FALSE def createWidget(self): #创建画图区域 self.drawPad = Canvas(root, width=width_root, height=height_root*0.9, bg=self.bgcolors) self.drawPad.pack() #创建按钮 btn_start = Button(text=

Qt Gui 第三章~第四章

别说谁变了你拦得住时间么 提交于 2020-02-09 17:12:19
一、图片资源的调用      如上图是我图片存放的位置跟qrc的命名;   如下则是qrc对应的编写格式;   <RCC> <qresource> <file>images/icon.png</file> . . . <file>images/gotocell.png</file> </qresource> </RCC>   当qrc放置好之后,则需要在pro文件中添加对应的文件配置: RESOURCES = spreadsheet1.qrc   当完成这些操作之后则可以自由地调用images中存在,并且qrc中已经描述的文件;   比如: QIcon(":/images/gotocell.png")    二、QAction的使用   任何QT窗口部件都可以有一个与之相关联的QActions列表。当需要统一操作,而各个控件不一样的时候,可以通过QAction来预操作;具体可以看帮助文档;   比如可以读取存储在action里面的data; QAction* action = qobject_cast<QAction*>(sender()); if (action) loadFile(action->data().toString());   这里通过sender()可以获取触发槽对应的信号的对象;比如: /*--> */ /*--> */ connect(aboutAction,

NUnit详细使用方法

与世无争的帅哥 提交于 2020-02-09 08:32:13
NUnit详细使用方法 作者:Service Is Living   文章来源:Service Is Living BLOG 前一段时间,有人问我在.NET里如何进行TDD开发.这个问题促使我想对NUnit做一个详细的介绍.因为我们大家都知道NUnit是在.NET进行TDD的利器.  如果你已经知道很多关于NUnit的应用,请指出我的不对之处和提出一些建议,使本文更加完善.如果你对NUnit还不是很了解的话,我建议你还是阅读一下.  本文分为以下部分:  1. TDD的简介  首先什么是TDD呢?Kent Beck在他的<<测试驱动开发 >>(Addison-Wesley Professional,2003)一书中,使用下面2个原则来定义TDD:  ·除非你有一个失败的自动测试,永远不要写一单行代码.  ·阻止重复  我想第一个原则是显而易见的.在没有失败的自动测试下就不要写代码.因为测试是嵌入在代码必须满足的需求中.如果没有需求,就没有必要实现任何东西.所以这个原则阻止我们去实现那些没有测试和在解决方案中不需要的功能.  第二个原则说明了在一个程序中,不应该包含重复的代码.如果代码重复,我想这就是不好的软件设计的象征.随着时间的流逝,它会对程序造成不一致的问题,并且使代码变非常混乱 ,因为我们时常不会记得重复代码的位置.如果发现代码重复,我想我们应该立即删除代码重复