精华内容
参与话题
问答
  • 相比之前的那个【简单版】登录界面,该模板新增: 1、js 回车事件,并且能够兼容多个浏览器; 2、界面布局的层次结构优化; 3、按钮监听响应事件的实现方式优化; 4、包含全屏方法的实现; 5、连个div块的叠加; --...
  • C#做界面[1]

    千次阅读 2019-04-10 20:59:46
    step1:在Microsoft Visual Stdio->文件->新建->项目->Visual c#->窗口应用->打开 step2:随后形成一个form窗口,找到工具箱,和属性窗口(在视图里)分别钉在两边.(更方便) Name:每个Name都是他们每个...

    step1:在Microsoft Visual Stdio->文件->新建->项目->Visual c#->窗口应用->打开
    step2:随后形成一个form窗口,找到工具箱,和属性窗口(在视图里)分别钉在两边.(更方便)
    在这里插入图片描述
    Name:每个Name都是他们每个控件对应的名字,之后在代码里要用到他时就调用他的名字即可;[给写代码的人看和用的]
    Text:展现在form窗口里的给使用者看的;
    事件:在属性窗口最上面有个"雷"的标志,点击它,就会看到很多事件

    step3:开始做第一个form1;
    梳理控件[常用到的]在工具箱里找,把控件拖到form里或者双击控件
    1.**Label控件[提示文字]**拖到form里以后,点击你拖的label控件)就会属性窗口就会自动出现你拖的label的全部属性[所有的都是这样].
    常用属性:Name,Text,font;[在属性窗口里]
    label的Name:习惯用lbl代替
    label的Text: eg.用户名
    label的font:字体把Text改成用户名
    2.事件
    label常用事件:Click事件:单击时会引发的事件
    MouseDoubleClick:双击时会引发的事件

    把Name改成lbl

    2.Button控件[按钮]
    (1)属性:
    Name:习惯btn
    Text:改成:确定
    (2)事件
    Click:点击这个button会发生的事情;
    [拖一个button到form1中,再改name:btn;再双击点击这个button进入写代码区]下图:
    eg.
    在这里插入图片描述
    在这里插入图片描述

    3.TextBox控件[输入框]
    (1)属性:
    Name:习惯txtName
    PasswordChar:获取或设置用户输入密码是所显示的字符
    UseSystemPasswordChar:获取或设置一个值,该值显示控件中的文本是否以默认的密码字符显示,默认值为False;
    MaxLength:能输入的最大长度
    ScrollBars:指定控件可以显示的滚动条(如果multiline为true)
    e.g
    a.输入密码的时候
    在form1的窗口中也就是在[form.cs[设计]*[除了在控件上]双击,会进入写代码的地方也就是Form1.cs(下图可见]

    在这里插入图片描述

    在这里插入图片描述

    b.在输入框中输数字时,显示出输入的位数
    建立个label(Name:lbl1,Text),点击TextBox的事件TextChanged如下

      private void txtName_TextChanged(object sender, EventArgs e)
            {
                lbl1.Text = txtName.Text.Count().ToString();
                //在label中显示你输入的个数
            }```
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190410205859649.png)
    
    展开全文
  • 漂亮通用界面

    千次下载 热门讨论 2017-12-27 20:52:57
    Qt漂亮通用界面。 大部分的界面都可以用这个学习,非常漂亮哦!
  • 地方

    主要面向想做出图形界面的C语言初学者

    C语言初学者开始都是在黑白控制台上开发一些小程序,实现一些小功能,因为基础的C语言可视化效果比较差,所展示的都是黑白的字符和数字,比较单调乏味。一些大学的计算机类专业学生,大一学习C语言,学习基础语法和算法,通过平台刷题提高自己编程能力,一般不专门学习图形化编程,期中或者期末可能会有开发一个小游戏或者小系统(如学生成绩管理系统、银行管理系统、日程管理系统等)的任务。这时如果在实现基本功能的情况下做出优美的图形界面,会比较出彩并且会有满满的成就感。

    一、环境准备

    操作系统:windows 10
    编译环境:VS 2017
    图形库:EasyX_20190415(beta)

    下载链接
    VS 2017: 微软官网
    EasyX图形库:EaxyX官网

    下面介绍一下EasyX:
    EasyX 是针对 C++ 的图形库,可以帮助 C语言或C++语言初学者快速上手图形和游戏编程,比如用编译环境和EasyX图形库可以轻松画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,或者导入一张图片,可以练习图形学的各种算法,等等。
    如何安装:
    需要先下载安装好编译环境VS2017,然后再下载安装EasyX图形库,安装时选择安装在Visual C++2017目录下即可。
    安装截图

    二、程序运行截图

    欢迎界面
    在这里插入图片描述
    系统初始界面
    在这里插入图片描述
    学生端
    在这里插入图片描述
    教师端
    在这里插入图片描述

    三、部分源码展示

    下面是代码的头文件、宏定义、函数声明部分。完整源码请在下方获取

     /************************************************************************
    程序名:日程管理系统
    版本号:2.0
    开发者:符泽林
    程序功能:1)设计学生端口和教师端口,学生端学生自我管理,教师端教师监督管理
    		  2)注册、登录账号,修改密码
    		  3)添加、修改、删除、显示日程
    		  4)文件自动保存
    		  5) 精美界面,界面友好,交互性强
    		  6)系统会进行自动保存
    		  7)登录后退出需要重新登录
    ************************************************************************/
    
    /*对库函数的定义*/
    #include <graphics.h>      // 引用图形库头文件
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<math.h>
    #include <conio.h>
    #include<tchar.h>
    
    /*宏定义*/
    #define NUMBER 100//定义可容纳(学生/教师)的用户数量 
    #define MANAGELENGTH 30//定义事件长度(包含时间) 
    #define STRLENGTH 30//定义用户名长度
    #define NUMLENGTH 12//定义密码长度 
    
    /*定义图片*/
    IMAGE welcome;//欢迎界面
    IMAGE welcome_button;//ENTER按钮
    IMAGE startup;//初始界面
    IMAGE stu1;//学生端初始
    IMAGE stu1_return;
    IMAGE stu1_exit;
    IMAGE stu_register;//学生端:创建账户
    IMAGE stu_logon;//学生端:学生登录
    IMAGE stu_resetpassword;//学生端:修改密码
    IMAGE stu_schedulemanagement1;//学生端:日程管理界面1
    IMAGE stu_schedulemanagement2;//学生端:日程管理界面2
    IMAGE stu_schedulemanagement2_return;
    IMAGE stu_schedulemanagement2_exit;
    IMAGE teacher1;//教师端初始
    IMAGE teacher1_return;
    IMAGE teacher1_exit;
    IMAGE teacher_register;//教师端:创建账户
    IMAGE teacher_logon;//教师端:教师登录
    IMAGE teacher_resetpassword;//教师端:修改密码
    IMAGE teacher_schedulemanagement1;//教师端:日程管理界面1
    IMAGE teacher_schedulemanagement2;//教师端:日程管理界面2
    IMAGE teacher_schedulemanagement2_return;
    IMAGE teacher_schedulemanagement2_exit;
    IMAGE createschedule;//学生端:创建日程
    IMAGE resetschedule;//学生端:修改日程
    IMAGE finishedcondition;//学生端:完成状态
    IMAGE setstuschedule;//教师端:设定学生日程
    IMAGE resetstuschedule;//教师端:修改学生日程
    IMAGE checkfinishedcondition;//教师端:查看完成状态
    IMAGE end;//结束界面
    
    /*全局变量*/
    int nStudentNum = 0;//注册的学生编号(从0开始)(同时也代表着注册人数) 
    int nTeacherNum = 0;//注册的教师编号 (第一个注册的用户编号为0) 
    int nStuFlag = 0;//定义判断学生是否登录的标志变量
    int nTeacherFlag = 0;//定义判断教师是否登录的标志变量 
    int studentnum;//定义登录的学生编号
    int teachernum;//定义登录的教师编号
    
    /*定义学生结构体数组*/
    struct student
    {
    	wchar_t szName[STRLENGTH];//定义学生用户名
    	wchar_t password1[NUMLENGTH];//定义学生账户密码
    	wchar_t password2[NUMLENGTH];//定义学生二次输入密码
    	int nSerialNum;//定义学生序号(从1开始) 
    	int nManagement = 0;//定义学生的日程事件数  
    	wchar_t Management1[10][MANAGELENGTH];//定义存储该学生设定的初始时间字符数组      设定一个学生最多设定10个事件 
    	wchar_t Management2[10][MANAGELENGTH];//定义存储该学生设定的截止时间字符数组
    	wchar_t Management3[10][MANAGELENGTH];//定义存储该学生设定的日程内容字符数组
    	wchar_t FinishStatus[10][MANAGELENGTH];//定义每个学生设定的日程的完成状态 
    }stu[NUMBER];
    
    /*定义教师的结构体数组*/
    struct  teacher
    {
    	wchar_t szName[STRLENGTH];//定义教师用户名
    	wchar_t password1[NUMLENGTH];//定义教师账户密码
    	wchar_t password2[NUMLENGTH];//定义教师二次输入密码 
    	int nSerialNum;//定义老师序号(从1开始) 
    }teacher[NUMBER];
    
    /*函数声明***********************************************/
    
    /*欢迎界面函数*/
    void Welcome(FILE *fp);
    
    /*文件保存函数*/
    void SaveFile(FILE *fp);
    
    /*一级主菜单函数*/
    void Select_MainMenu(FILE *fp);
    
    /*二级菜单函数*/
    
    //二级菜单学生端目录显示
    void OutputStu_SecondMenu(FILE *fp);
    //二级菜单教师端目录显示
    void OutputTeacher_SecondMenu(FILE *fp);
    //二级菜单:学生创建账户 
    void Stu_Register(FILE *fp);
    // 二级菜单:学生登录
    void Stu_Logon();
    //二级菜单:学生修改密码
    void Stu_ResetPassword(FILE *fp);
    //二级菜单:学生日程管理
    void Stu_ScheduleManagement(FILE *fp);
    //二级菜单:教师创建账户
    void Teacher_Register(FILE *fp);
    //二级菜单:教师登录
    void Teacher_Logon();
    //二级菜单:教师修改密码
    void Teacher_ResetPassword(FILE *fp);
    //二级菜单:教师对学生日程管理
    void Teacher_ScheduleManagement(FILE *fp);
    
    /*二级菜单结束*/
    
    /*三级菜单*/
    
    //三级菜单:新建日程 
    void CreateSchedule(FILE *fp);
    //三级菜单:修改日程
    void ResetSchedule(FILE *fp);
    //三级菜单:完成状态
    void FinishedCondition(FILE *fp);
    //三级菜单:设定学生日程
    void SetStuSchedule(FILE *fp);
    //三级菜单:修改学生日程
    void ResetStuSchedule(FILE *fp);
    //三级菜单:查看学生完成状态
    void CheckFinishedCondition();
    
    /*三级菜单结束*/
    
    /*函数声明结束********************************************/
    

    四、完整文件

    日程管理系统
    提取码:3x07
    说明:图片都是用ps自己制作的,切不可更改图片命名,否则会导致程序无法运行,因为图片命名和代码要保持一致。

    五、要点

    1、创建项目:新建-项目-空项目-右键“源文件”-添加-新建项-C++文件
    2、编码字符集:unicode字符集
    在这里插入图片描述
    3.将图片资源直接导入到所命名的文件夹中,注意不要将图片打包文件夹后再放入,要直接将图片导入对应文件夹。
    4.程序中要多次用到图形库的函数,建议刚接触的初学者查看EasyX安装时附带的官方帮助文档,也可以参考我分享的源代码。但是考虑到帮助文档内容较少,对函数的用法介绍较少,下面分享一个关于EasyX图形库详细函数用法介绍的文档。
    EasyX函数详细介绍文档
    提取码:6wdk
    5.解决方案配置有两种选择:debug和release,程序编译后会生成对应的文件,如debug文件夹,将图片资源导入该文件夹就可以直接运行文件夹内的可执行文件,否则无法运行,release同理。

    六、最后的话

    本文不谈高深的技术,只介绍了最基础的基于EasyX图形库的C语言图形化编程,比较简单适合初学者,但是学好了同样可以开发出非常棒的程序。当时刚接触C语言和图形界面时不知从何下手,后来发现EasyX这个简单好用的库,没有找到很多详细的文章和博客。自己看EaxyX帮助文档和一些源码学到了一些东西,学了ps做了几十张图片,最后写出了这个日程管理系统,于是决定将我学到的东西和写的程序分享给大家,没有多好,希望给大家一个参考,衷心的希望本文可以对大家有所帮助,欢迎大家留言呀。

    展开全文
  • 非常漂亮后台UI 纯静态UI界面

    千次下载 热门讨论 2013-06-03 20:18:42
    效果图:首页主界面真心觉得非常吸引人,给客户,用户体验非常舒服, 相信很多朋友一看就明白怎么回事,我要的就是这个效果,因为简单所以编程快乐!~~
  • 教你用Python写界面

    万次阅读 多人点赞 2018-11-18 18:52:54
    作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面,python的界面库很多,我认识的并不多,这里只列出几种我认识的 1.tkinter Tkinter(也叫Tk...

    好代码本身就是最好的文档。当你需要添加一个注释时,你应该考虑如何修改代码才能不需要注释

    作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面,python的界面库很多,我认识的并不多,这里只列出几种我认识的

    1.tkinter

    Tkinter(也叫Tk接口)是Tk图形用户界面工具包标准的Python接口。Tk是一个轻量级的跨平台图形用户界面(GUI)开发工具。Tk和Tkinter可以运行在大多数的Unix平台、Windows、和Macintosh系统。

    Tkinter 由一定数量的模块组成。Tkinter位于一个名为_tkinter(较早的版本名为tkinter)的二进制模块中 。Tkinter包含了对Tk的低 级接口模块,低级接口并不会被应用级程序员直接使用,通常是一个共享库(或DLL),但是在一些情况下它也被Python解释器静态链接。

    2.pyqt

    PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次发布也是在1998年,但是当时它叫 PyKDE,因为开始的时候SIP和PyQt没有分开。PyQt是用SIP写的。PyQt 提供 GPL版和商业版。

    3.wxpython

    wxPython 是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。 wxPython 是作为优秀的跨平台 GUI 库 wxWidgets 的 Python 封装和 Python 模块的方式提供给用户的。

    就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够运行在32位windows、绝大多数的Unix或类Unix系统、Macintosh OS X上。

    4.Kivy

    这是一个非常有趣的项目,基于OpenGL ES 2,支持Android和iOS平台的原生多点触摸,作为事件驱动的框架,Kivy非常适合游戏开发,非常适合处理从widgets到动画的任务。如果你想开发跨平台的图形应用,或者仅仅是需要一个强大的跨平台图形用户开发框架,Kivy都是不错的选择。
    5.pygame

    Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发而无需被低级语言(如机器语言汇编语言)束缚。

    这个库使用来写游戏的,但是你也可以用来写界面,嘿嘿

    那选择什么库是个人的喜好,但是我推荐尽可能去选择一种通过且学习资料比较多的吧,我这里选择的是tkinter,项目要求比较急,没怎么挑就选了。。。。

    我学习也不是很深,如果你想要进行更深的学习请前往tkinter官方文档

    先来看看Tkinter里面的基础控件

    接下来的代码讲解中你需要导入这些

    from tkinter import *
    from tkinter.tix import Tk, Control, ComboBox  #升级的组合控件包
    from tkinter.messagebox import showinfo, showwarning, showerror #各种类型的提示框

    在进行界面绘制之前你需要初始化Tk()

    root = Tk() # 初始化Tk()

    root便是你布局的根节点了,以后的布局都在它之上

    root.title("hello tkinter")    # 设置窗口标题
    root.geometry("800x1000")    # 设置窗口大小 注意:是x 不是*
    root.resizable(width=True, height=True) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
    root.tk.eval('package require Tix')  #引入升级包,这样才能使用升级的组合控件

    设置一些窗口属性

    1.Label

    再来看看Label,它的属性很多

    activebackground, activeforeground, anchor,
    background, bitmap, borderwidth, cursor,
    disabledforeground, font, foreground,
    highlightbackground, highlightcolor,
    highlightthickness, image, justify,
    padx, pady, relief, takefocus, text,
    textvariable, underline, wraplength
    height, state, width

    太多了,作用基本和名字一样,这里就不一一说了,你可以自己去试试,我说一下常用的属性

    lable = Label(root, text="label", bg="pink",bd=10, font=("Arial",12), width=8, height=3)
    lable.pack(side=LEFT)

     

     

    第一个 要依附的节点
    text 上面显示的字
    bg 背景颜色  也可以传rgb16进制的形式
    bd 边框宽度
    font 字体 第一个是字体样式 第二个是字体大小
    width  height 宽 高
    bitmap 图像
    highlightcolor 高亮时字体颜色
    highlightbackground 高亮时背景颜色
    textvariable 绑定的变量 之后如果变量值发生变动 字也会随之改变
    wraplength 换行控制 如果是50就表示宽度到50就换行显示

    最后你需要调用pack()来把控件布置上去,你可以指定布局方式,可定义的属性也非常多

    # Booleans
    NO=FALSE=OFF=0
    YES=TRUE=ON=1
    
    # -anchor and -sticky
    N='n'
    S='s'
    W='w'
    E='e'
    NW='nw'
    SW='sw'
    NE='ne'
    SE='se'
    NS='ns'
    EW='ew'
    NSEW='nsew'
    CENTER='center'
    
    # -fill
    NONE='none'
    X='x'
    Y='y'
    BOTH='both'
    
    # -side
    LEFT='left'
    TOP='top'
    RIGHT='right'
    BOTTOM='bottom'
    
    # -relief
    RAISED='raised'
    SUNKEN='sunken'
    FLAT='flat'
    RIDGE='ridge'
    GROOVE='groove'
    SOLID = 'solid'
    
    # -orient
    HORIZONTAL='horizontal'
    VERTICAL='vertical'
    
    # -tabs
    NUMERIC='numeric'
    
    # -wrap
    CHAR='char'
    WORD='word'
    
    # -align
    BASELINE='baseline'
    
    # -bordermode
    INSIDE='inside'
    OUTSIDE='outside'
    
    # Special tags, marks and insert positions
    SEL='sel'
    SEL_FIRST='sel.first'
    SEL_LAST='sel.last'
    END='end'
    INSERT='insert'
    CURRENT='current'
    ANCHOR='anchor'
    ALL='all' # e.g. Canvas.delete(ALL)
    
    # Text widget and button states
    NORMAL='normal'
    DISABLED='disabled'
    ACTIVE='active'
    # Canvas state
    HIDDEN='hidden'
    
    # Menu item types
    CASCADE='cascade'
    CHECKBUTTON='checkbutton'
    COMMAND='command'
    RADIOBUTTON='radiobutton'
    SEPARATOR='separator'
    
    # Selection modes for list boxes
    SINGLE='single'
    BROWSE='browse'
    MULTIPLE='multiple'
    EXTENDED='extended'
    
    # Activestyle for list boxes
    # NONE='none' is also valid
    DOTBOX='dotbox'
    UNDERLINE='underline'
    
    # Various canvas styles
    PIESLICE='pieslice'
    CHORD='chord'
    ARC='arc'
    FIRST='first'
    LAST='last'
    BUTT='butt'
    PROJECTING='projecting'
    ROUND='round'
    BEVEL='bevel'
    MITER='miter'
    
    # Arguments to xview/yview
    MOVETO='moveto'
    SCROLL='scroll'
    UNITS='units'
    PAGES='pages'

    写完这些你运行程序发现还是无法出现界面,那是因为你还少了一句

    root.mainloop()

    加上这句话使程序进入消息循环,界面便会显示出来

    学完了label之后学其他控件也就简单了很多,因为很多属性都是相同的

    2.Button

    button=Button(root,text='QUIT',command=root.quit,activeforeground="black",activebackground='blue',bg='red',fg='white')
    button.pack(fill=Y,expand=1)

    之前说过的属性如果没有特殊情况就不再说了

    command 点击调用的方法
    activeforeground 点击时按钮上字的颜色
    activebackground 点击时按钮的背景颜色

    3.Scale

    def resize(ev=None):
        lable.config(font='Helvetica -%d bold'%scale.get())
    scale=Scale(root,from_=10,to=40,orient=HORIZONTAL,command=resize)
    scale.set(12)
    scale.pack()

    和button不同的是command不再是点击事件了而是拖动事件 ,调用set()方法可以设置当前位置

    from_ 滑动条起始值
    to 滑动条终点值
    origent 样式 两种样式 一横一竖

    4.NumbericUpDown

    ct=Control(root,label='Number:',integer=True,max=12,min=2,value=2,step=2)
    ct.label.config(font='Helvetica 14 bold')
    ct.pack()
    integer 是否为整数
    max 最大值
    min 最小值
    value 初始值
    step 步长

    这是一个数字选择框 其中的字体配置需要使用config()方法来进行配置

    5.ComboBox

    cb=ComboBox(root,label='Type:',editable=True)
    for animal in ('dog','cat','hamster','python'):
        cb.insert(END,animal)
    cb.pack()

    这是一个下拉选择框,label前面要显示的字,editable控制是否可更改

    调用insert()给下拉选择框添加选项

    6.Menu

    def click():
        print("点击了一次")
    menubar=Menu(root)
    root.config(menu=menubar)
    filemenu=Menu(menubar,tearoff=0)
    menubar.add_cascade(label='文件',menu=filemenu)
    filemenu.add_command(label='新建...',command=click())
    filemenu.add_command(label='打开...',command=click())
    filemenu.add_command(label='保存',command=click())
    filemenu.add_command(label='关闭填写',command=root.quit)

    惨淡蓝需要所依附的节点配置menu才能起作用

    调用add_cascade给menu添加一项选项

    带哦用add_command则是给外层的选项添加一个子选项

    7.Frame

    frame1 =Frame(root)
    frame1.pack(fill=X)
    lable1=Label(frame1,text='您的花名:  ')
    lable1.grid(row=1,column=0)

    frame相当于一个局部的窗体,可以用来装载其它控件

    使用grid能让你更容易把握控件的位置,你可以指定它出现在几行几列,是否跨行跨列,跨几行等等

    8.Radiobutton

    frame2=Frame(root)
    frame2.pack(fill=X)
    lable2=Label(frame2,text='您的性别:  ')
    lable2.grid(row=1,column=0)
    sex=StringVar()
    sex_male=Radiobutton(frame2,text='男',fg='blue',variable=sex,value='男')
    sex_male.grid(row=1,column=2)
    sex_female=Radiobutton(frame2,text='女',fg='red',variable=sex,value='女')
    sex_female.grid(row=1,column=4)

    这是一个单选框,里面的属性之前也说过

    9.ListBox

    frame4 =Frame(root)
    frame4.pack(fill=X)
    lable4=Label(frame4,text='4、请删除您不会的变成语言:  ')
    lable4.grid(row=1,column=0)
    listbox=Listbox(frame4)
    listbox.grid(row=1,column=1)
    for item in ["C","C++","JAVA","PYTHON","R","SQL","JS"]:
        listbox.insert(END,item)
    DELETE=Button(frame4,text="删除",command=lambda listbox=listbox:listbox.delete(ANCHOR))
    DELETE.grid(row=1,column=2)
    language=Button(frame4,text="确定")
    language.grid(row=2,column=1)

    这是一个列表,注意这里按钮点击事件的写法是用lambda表达式写的

    10.Canvas

    canvas = Canvas(window, width = 200, height = 100, bg = "White")
    canvas.pack()

    这是一个画板,你可以在上面画各种形状,上例子:

    from tkinter import *
    
    class CanvasDemo:
        def __init__(self):
            window = Tk()
            window.title("CanvasDemo")
    
            self.canvas = Canvas(window, width = 200, height = 100, bg = "White")
            self.canvas.pack()
    
            frame = Frame(window)
            frame.pack()
    
            btRectangle = Button(frame, text = "长方形", command = self.displayRect)
            btOval = Button(frame, text="椭 圆", command=self.displayOval)
            btArc = Button(frame, text = "圆 弧", command = self.displayArc)
            btPolygon = Button(frame, text="多边形", command=self.displayPolygon)
            btLine = Button(frame, text=" 线 ", command=self.displayLine)
            btString = Button(frame, text="文 字", command=self.displayString)
            btClear = Button(frame, text="清 空", command=self.clearCanvas)
    
            btRectangle.grid(row = 1, column = 1)
            btOval.grid(row=1, column=2)
            btArc.grid(row=1, column=3)
            btPolygon.grid(row=1, column=4)
            btLine.grid(row=1, column=5)
            btString.grid(row=1, column=6)
            btClear.grid(row=1, column=7)
    
            window.mainloop()
    
        def displayRect(self):
            self.canvas.create_rectangle(10, 10, 190, 90, tags = "rect")
        def displayOval(self):
            self.canvas.create_oval(10, 10, 190, 90, tags = "oval", fill = "red")
        def displayArc(self):
            self.canvas.create_arc(10, 10, 190, 90, start = -90, extent = 90, width = 5, fill = "red", tags = "arc")
        def displayPolygon(self):
            self.canvas.create_polygon(10, 10, 190, 90, 30, 50, tags = "polygon")
        def displayLine(self):
            self.canvas.create_line(10, 10, 190, 90, fill = 'red', tags = "line")
            self.canvas.create_line(10, 90, 190, 10, width = 9, arrow = "last", activefill = "blue", tags = "line")
        def displayString(self):
            self.canvas.create_text(60, 40, text = "Hi,i am a string", font = "Tine 10 bold underline", tags = "string")
        def clearCanvas(self):
            self.canvas.delete("rect", "oval", "arc", "polygon", "line", "string")
    
    CanvasDemo()

     11.CheckButton

    frame8=Frame(root)
    frame8.pack()
    agree=StringVar()
    agree=Checkbutton(frame8,text='我同意',variable=agree,onvalue='确定',offvalue="不确定",)
    agree.grid()

    这是一个多选框,oncalue代表被勾选时的值,offvalue代表不被勾选时的值

    12.LabelFrame

    frame10=Frame(root)
    frame10.pack()
    group=LabelFrame(frame10,text='特别鸣谢',padx=5,pady=5)
    group.grid()
    w=Label(group,text='容器框')
    w.pack()

    这是个容器框,padx,pady分别控制在x,y方向上的外边距

    差不多这些控件已经够用了,我这还有几个小例子供你练习

    展开全文
  • 个人博客HTML界面

    2019-01-24 14:29:13
    一个HTML的个人博客界面,只有首页界面。包含css和HTML
  • 1.用户界面原理和界面库编程模型

    千次阅读 2018-07-26 20:51:01
    图形用户界面的发展是建立在成熟的图形学基础上的,本系列文章主要依托Windows 平台下的C++界面库来揭秘图形界面库原理,全方位的展现Windows界面库的发展历程和一个界面库是如何构成的。采用C++是因为系统提供的...

    从最早的图形用户界面操作系统Apply Lisa,到空前的windows 1.0,再到最新的Windows、苹果、Linux操作系统,图形用户界面已经是个人电脑不可缺少的部分。图形用户界面的发展是建立在成熟的图形学基础上的,本系列文章主要依托Windows 平台下的C++界面库来揭秘图形界面库原理,全方位的展现Windows界面库的发展历程和一个界面库是如何构成的。采用C++是因为系统提供的原生图形界面编程接口都是基于C/C++的,其他的语言接口均是在此基础上做的包装,但是本文介绍的技术并不局限于Windows和C++,所有界面库的原理基本都是通用的。

    用户界面原理

    简单思考下图形用户界面是什么?如下,做过DOS下图形界面的,很容易发现图形用户界面的基本元素就是线框,现代界面也只是在此基础上加上各种阴影、圆角、填充等等,而处理鼠标和界面交互的原理就是判断鼠标和这些线框的位置关系。实际上Window 3.1之前,整个图形界面的底层还是跑在DOS上。

    再思考下,电脑屏幕能够显示图像的原理是什么呢?如下,将屏幕做个简化,就类似LED显示屏,每个像素对应一个显示LED,显示对应的图像就是将图像栅格化后按照颜色设置对应像素点像素值,只不过CRT或液晶显示屏的像素密度更高,刷新频率更高而已。

     虽然显示原理是栅格化,但是实际显示时我们不可能手动去输入栅格化后的点阵,因此必须有一种方法把图形界面的各种基本元素直线、曲线、圆、椭圆、字体等映射为栅格化点阵,这就是图形学研究的内容,事实上图形界面的发展和图形学发展是离不开的。用户界面的实现包括底层驱动的支持和应用层的支持,一般驱动层支持基本图形元素的绘制,应用层再包装来支持复杂图形绘制。现代操作系统图形绘制常用基本元素基本都已经集成到驱动中,绘制效率非常高,而且针对一些特殊图形绘制做了优化,在游戏等对绘制效率和2D/3D特效要求高的场景,现代显卡都针对OpenGL和DirectX等在驱动层做了优化,Windows更是将图形子系统移到内核模式(如下)。

     

    既然显卡驱动提供了基本元素的显示,那么为了完成用户界面我们需要做的就是调用这些基本元素,绘制图形界面,然后监听用户操作事件作出对应响应即可,这就是操作系统负责做的事情。其实原理就是这么简单,看看最原始windows (如下),实际上也就是这么简单封装。

    界面库编程模型

    那么界面库的作用是什么?经典Windows中基本功能放在两个模块中——user32.dll和gdi32.dll,前者提供窗口创建和消息传递监听,后者提供直线、曲线、圆等元素绘制功能,这也是现在通用界面库提供的基本功能,在这些功能基础上用户即可构建自己的界面程序,界面库的功能在于提供接口给开发者,开发者按照指定的模式绘制和填充事件响应即可完成界面程序编写。因此常见的编程模型如下:

    设计和创建界面:对于系统原生界面库来说,一般是代码创建,一些高级界面库(Qt、WPF等)支持从xml/xaml创建,web前端使用html声明创建。

    循环等待和分发事件:这和具体的实现和场景有关系,Win32是基于消息循环,Qt中抽象成了信号槽事件循环,他们都是在主线程中响应事件,而java的awt、前端dom事件等为了安全和界面响应敏捷,将事件分发到了一个单独线程中,用户都是在另外线程中响应事件。

     

    文中相关图片均引用自互联网,如有侵权请留言说明。

    原创,转载请注明来自http://blog.csdn.net/wenzhou1219

    展开全文
  • 在Python-OpenCV中显示图像时调用的是一个单独的窗口,有时我们需要将这些图像显示在PyQt的图形化界面上,这样就可以将整个图像显示与PyQt图形化界面进行整合。但OpenCV格式的图像和PyQt格式的图像并不同,这就需要...
  • Java界面设计GUI

    千次阅读 多人点赞 2019-07-06 11:25:05
    界面主要是先申请一个窗口,窗口只能有一个,然后在窗口中可以有多个面板,多个面板的布局可以实现美丽的界面 首先申请一个JFrame窗口,可以设置窗口的大小及位置 然后申请JPanel面板,可以设置窗口的大小及位置 ...
  • 索引本章最佳实践正式开始编辑准备界面UI实体编写准备界面UI逻辑类UITankItem类UIReady类进入下一流程 本章最佳实践 UI界面管理器。 正式开始 在前几章我们已经完成了准备界面所需要的大部分内容,比如坦克、武器...
  • android 漂亮的UI界面 完整的界面设计

    万次下载 热门讨论 2012-02-17 22:19:40
    声明:这也是我学习时在网上下载的,鉴于分享精神,并且觉得很不错才上传...android 漂亮的UI界面 完整的界面设计 这是一个完整的UI设计,但是没写动作,这是一个公司程序员的公司任务设计,请别商用,要用请修改。。。
  • NSIS教程(3): 现代用户界面(Modern UI)

    万次阅读 2018-01-18 14:19:39
    NSIS的现代用户界面(Modern UI)只是相对于传统(丑陋)的界面而言的“现代”而已。它定义在MUI2.nsh(注:nsh文件类似C++中的头文件,可以被其他模块包含引用)中,如果要使用MUI2界面,则需要包含该文件: !...
  • Android UI---界面开发推荐颜色 在Android开发过程中,总要给app添加一些背景,个人认为使用纯色调便可以达到优雅的视觉效果。 补充一些常用的颜色值:colors.xml #ffffff #fffff0 #ffffe0 #ffff00 #fffafa ...
  • UI设计师必备的五款界面设计工具

    万次阅读 2018-08-07 19:29:17
    在前几篇文章中,我们分享了一些最受欢迎的...同时也给那些想转行做UI设计师的朋友一些工具建议,接下来我们就来盘点一下那些UI设计师需要掌握的界面设计工具。 1. Sketch-强大的矢量绘图工具 支持平台:只支持M...
  • DirectUI好处在于可以很方便的构建高效,绚丽的,非常易于扩展的界面。作者是Bjarke Viksoe, 他的这个界面程序思想和代码都非常优秀,他的代码主要表述了他的思想,虽然bug比较多,但是非常合适学习。 DirctUI在...
  • EX_UI界面库201702.27版

    2018-01-20 20:34:52
    EX_UI界面库201702.27版EX_UI界面库201702.27版EX_UI界面库201702.27版EX_UI界面库201702.27版EX_UI界面库201702.27版EX_UI界面库201702.27版EX_UI界面库201702.27版EX_UI界面库201702.27版EX_UI界面库201702.27版EX...
  • 基于Qt的ui图形化界面进行的界面设计

    万次阅读 多人点赞 2017-11-24 18:57:59
    qt初学者往往会发现这样的一个问题——无论是我买的相关的书,还是网上博客的内容,基本全都是利用纯代码的形式来进行界面设计的。...故本篇文章介绍了通过ui图形化界面进行设计的过程并简单梳理一下工程的结构
  • 仿微信UI界面 全套源码下载

    千次下载 热门讨论 2014-01-08 21:08:04
    本软件基本实现微信的所有UI效果。具备如下功能点: 登录、功能指引、退出对话框、设置界面、会话界面、右上角功能键、详细资料头像点击放大等各种功能,很完整详细的源码下载!
  • Spark UI界面原理

    万次阅读 2016-07-06 23:21:51
    本文以Spark-1.6.0源码为基础,分析了Spark UI界面的框架构成,及页面数据展示方法。
  • 这个界面框架是基于ModernUI来实现的,在该文我将分享所有的源码,并详细描述如何基于ModernUI来构造一个非常通用的、插件化的WPF开发框架。下载源码的同志,希望点击一下推荐。 本文将按照以下四点来介绍: (1)...
  • Swagger 自定义UI界面

    万次阅读 多人点赞 2017-09-13 14:11:48
    Swagger 自定义UI界面 Swagger简单介绍 如何使用Swagger 添加自定义UI界面 使用swagger-ui-layer
  • Go语言图形界面开发:Go版GTK

    万次阅读 热门讨论 2018-02-08 21:17:27
    本人录制的Go入门视频 go语言开发实战:https://pan.baidu.com/s/1bqOR9qZ Go语言GUI编程:... 初识GTK 01、GUI概述 02、GTK简介 03、环境搭建(windows) ...05、一...
  • Delphi7_DirectUI_简单界面源码

    千次下载 热门讨论 2013-07-02 17:59:19
    Delphi7 DirectUI 简单界面源码
  • 系统用户界面_com.android.systemui.apk

    热门讨论 2013-05-17 04:19:35
    系统用户界面_com.android.systemui,当您误删此文件,您的安卓手机会提示:com.android.systemui已经停止工作,此时您就需要下载此文件,重新安装即可。
  • Android Studio:基本UI界面设计 (详细)

    万次阅读 多人点赞 2019-01-10 11:44:37
    基本UI界面设计 二、 实现内容 实现一个 Android 应用,界面呈现如下效果: 三、 实验过程 (1)标题  首先我们建立一个TextView控件来写标题。 实验对标题的要求如下: 1 标题字体大小 20sp...
  • android登陆界面UI布局

    千次阅读 2015-07-30 23:50:13
    其实UI布局说简单不简单,说难有时候又不小心捣鼓出来,这种东西练多了自然就会了。 好,进入正题。 首先建立一个工程吧。 其次,建立一个layout布局文件,这里命名为activity_top.xml.不罗嗦,直接上代码。 ...
  • 软件制作的界面ui

    2018-05-24 17:21:41
    做项目工程中搜集到的ui界面,可以自己进行分割,界面很好看很科幻
  • PyQt5 图形界面-用Qt Designer来设计UI界面,并转化为python代码运行实例演示。 Qt Designer 是 Qt Creater 程序里的一个功能。 PyQt5是把 Qt Designer 设计的界面转化为python代码的库。 首先打开我们的Qt Creater...
  • 界面UI测试的方法

    万次阅读 多人点赞 2018-04-18 23:53:00
    界面测试:简称UI测试,测试功能模块界面上看到的所有元素(包括空文字、控件等)颜色风格是否统一,布局是否合理、美观,符合用户习惯等等。 接下来介绍一下移动端界面测试的详细内容。文案的测试字体字号格式规范...

空空如也

1 2 3 4 5 ... 20
收藏数 3,721,094
精华内容 1,488,437
关键字:

界面