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

    千次下载 热门讨论 2017-12-27 20:52:57
    Qt漂亮通用界面。 大部分的界面都可以用这个学习,非常漂亮哦!
  • 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)
    
    展开全文
  • C++界面

    千次阅读 2019-08-03 11:23:23
     ...Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。     一...

            刚开始用C++做界面的时候,根本不知道怎么用简陋的MFC控件做出比较美观的界面,后来就开始逐渐接触到BCG  Xtreme ToolkitPro v15.0.1,Skin++,等界面库,以及一些网友自己写的界面库,开始对于C++软件界面美化有了一点点的心得。不敢藏私,希望和一些新手朋友们分享交流。


        一.  开源C++界面库

      

    1.RingSdk

        Ringsdk是CSDN上一个前辈自己写的界面库,这个界面库很轻而易举实现QQ2009的界面效果。链接见 

      http://blog.csdn.net/ringphone/article/details/2911244   貌似Ringsdk和MFC无法进行交互,但是 RingSdk其中有很多的图形处理的代码都非常有参考价值。


    2.redui的官方网站http://www.redui.org 已经打不开了。官方QQ群是 40729296 

    CSDN地址是 
    http://blog.csdn.net/jameshooo/article/details/6677272

    这是官方的说明

    REDUI,又名REDirectUI,全称是Rendering Engine for DirectUI,是一款基于XML描述的 DirectUI 渲染引擎,能将“控件”的交互和渲染过程分解成多种独立的要素,包括布局、视觉效果、样式、UI自动化、滤镜、脚本、事件、3D场景、3D模型、通用动画等。通过这些要素的排列组合,可以呈现出各种不同效果的控件,甚至能在XML中直接自定义控件类型。支持2D/3D无缝融合。
    • REDUI支持GDI/GDI+/DirectDraw/D3D等渲染方式,并有支持OPENGL/ES的愿望


    3.Duilib 这个就比较大名鼎鼎了,不用多说了吧。包括华为网盘在内的很多业内企业都在用这个界面库。我用Duilib做了一个小型的界面。贴出来献丑一个。



    4.WGI-1.0.7-Demo-Project-for-windows 。。额。。时间太长,忘记了这个代码是什么,姑且先忽略它。


    5.cj60lib 这个玩过Gh0st3.6木马的人都熟悉,是一款对MFC进行拓展的界面库

    6.金山界面库 这个就不赘述了,可以直接上金山的论坛找源代码和资料

    7.skinTK_V0.20 一款类似于Skin++的开源界面库

    8.FreeCL_Skin2.3 一款不错的控件库 扩展了常用的MFC控件 。  这个是FreeCL_Skin提供的一个效果实例。



    9.GuiLib1.5 一个老外写的界面库 没有用过,没有调查,就没有发言权。大家自行百度。


    10.基于3D的界面库 MangoGUI_V0.1.5

    MangoGUI是猫仔在DXUT基础上修改得来的一个开源GUI系统。

    目前来说基本上继承了DXUT里面绝大多数的功能和改进了使用方式,让DX学习爱好者更容易去使用GUI系统。

    如果你也是一位对GUI有兴趣的同学,非常欢迎你一同来参与到MangoGUI的设计当中来!

    作者博客

    http://m9551.blog.sohu.com/


    11.基于Skia的directui库metalbone

    代码托管地址

    http://code.google.com/p/metalbone/

    官方说明

    MetalBone是一个C++ DirectUI库。接口、命名等借鉴Qt,而并非使用Windows风格。

    MetalBone的特点是,使用CSS来定制样式(如果没有CSS的话,则什么也不显示,lol)。目前可以使用Direct2D或Google Skia来绘制界面。MetalBone使用的是 WWM协议(基于LGPL)


    12.SonicUI2011

    效果比较不错的一款皮肤库

    作者CSDN地址是 

    http://my.csdn.net/akof1314


    13 基于OpenGl的界面库 beGUI-0.1.3-src

    代码托管地址

     http://code.google.com/p/begui/


                   二 未开源或商业界面库



    1.Flash4UI 

     看命名就知道是将Flash嵌入到UI中。

    官方网站是  http://www.flash4ui.com/

    效果图片



    2.bolt 迅雷7界面引擎

    迅雷界面引擎,这个用过迅雷下载和迅雷看看的就有体会了,界面的确是做的非常的赞。而且流畅,CPU占用和内存各种都很棒。采用了脚本交互的方式,脚本语言采用了Lua.可惜的是迅雷只开放了接口SDK给个人使用。

    官方网址 http://bolt.xunlei.com/


    3.clayui

    百度百科说明   clayui是一个采用纯C++编写的界面框架,可以很方便的移植到各种系统上。现在支持的系统包括android,windows,wince,linux。clayui的特点是能实现各种2D,3D动画,一些WPF,FLEX才能实现的界面效果,通过clayui可以很方便的实现。 clayui的底层渲染支持纯软件渲染,d3d,opengl es硬件加速渲染,您可以根据自身的需求选择合适的渲染方式,使您界面的用户体验达到最佳效果

    效果


    4.DSkinLite

    官方网址  http://www.uieasy.cn/dskinlite/

    官方Demo



    5.libuiDK

    官方说明:LibUIDK是国际上顶尖的专业开发Windows平台下图形用户界面的开发包,也是国内第一款商业的高级界面开发工具。该开发包基于Microsoft的MFC库。使用此开发工具包可轻易把美工制作的精美界面用Visual C++实现,由于LibUIDK采用所见即所得的方式创建产品界面,所以极大的提高了产品的开发速度,并大大增强图形用户界面(GUI)的亲和力。LibUIDK还可以使您的软件轻松具有当今流行的换肤功能,以提高产品的竞争力。

    官方网站

    http://www.iuishop.com/index.asp

    实例



    6. SiteUi   SkinSE  都有官方网站。就不继续搬砖的工作了。


    7.(未开源)上海勇进UIPower

    这个比较牛逼。一款界面库就是大几百万的。老总阙海忠还亲自录了20集的界面库相关的视频

    官方网站 http://www.uipower.com/

    这是老阙的视频。



    8.炫彩界面库

    炫彩界面库貌似是私人开发的一个界面库,可以用C++.c#易语言等来开发。炫彩库的作者貌似是湖北襄阳人哟。

    官方网站 http://www.xcgui.com/


    9.魔方界面库

    官方网站 http://www.muilib.com/

    MuiLib(Magic UI Library)Windows高级界面开发库是在国内首家免费开源的DuiLib界面开发库基础上经过针对性的扩展而发展起来的,他继承了DuiLib高度自由灵活的特点,并吸收了其他界面库的一些优点,针对Windows层窗口按像素透明技术而重点优化后形成的一个优秀界面开发库,是一个使用纯C++调用Windows API的开发库,无任何其他第三方依赖框架,您可以使用其提供的各种高级控件来创建更加炫酷的用户界面


    10 XtremeToolkit

    Codejock 公司出品的一款界面库。应用也是比较广泛的。在2013版的大灰狼远程操控中就采用了这款界面库。


    11.Sharpui

    代码托管地址  https://github.com/china520/sharpui

    Sharpui是居于现在流行的DUI思想的一套界面库,可以方便实现半透明和各种界面效果,采用纯c++实现,分为引擎和控件两个部分,这两个部分采用动态库的形式提供,引擎部分处理了事件、资源、渲染、控制逻辑,同时提供了各种应用层面控件的实现基类,包括:Visual、Element、FrameworkElement、Control、ContentControl、Window、Panel、Popup,这些类封装了基础控件的实现细则,所有用户实现的控件都必须继承自这些类,对于需要呈现的控件必须继承至FrameworkElement。
    控件部分提供的所有控件均采用DUI方式实现、分层绘制,实现各种常用的布局控件,可灵活实现界面的自动布局;Sharpui本身所有数据结构采用原生实现,内存自动管理,不依赖于std的任何容器,使得库的使用更加独立、编译更加简单,使用VS任意一个版本编译都可以用在其它版本里,不需要担心由于std版本原因而产生编译问题。



    以上都是我在工作和个人业余时间收集积累的开源或商业界面库,这些界面库各有各的特色和侧重点,也有不同的换肤思想,如果要用在项目中还是要进行适当的增删整改。

    由于个人能力水平见识有限,也有些大神的作品没有被收录其中。表示遗憾。




    /**************************************************Witch_Soya***********************************************************/

    /**************************************************2013年9月3日15:55:18***********************************************/

    展开全文
  • android 漂亮的UI界面 完整的界面设计

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

    主要面向想做出图形界面的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做了几十张图片,最后写出了这个日程管理系统,于是决定将我学到的东西和写的程序分享给大家,没有多好,希望给大家一个参考,衷心的希望本文可以对大家有所帮助,欢迎大家留言呀。

    展开全文
  • 教你用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方向上的外边距

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

    展开全文
  • 用MFC做漂亮界面之登录界面

    万次阅读 2018-05-07 10:28:45
    转自:https://blog.csdn.net/u011711997/article/details/79375710前段时间由于工作原因,一直没有更新博客...这个登录界面的效果图如下:分析当我们看到这个界面的时候,先不要忙着去做,先要分析一下哪些是代码做...
  • Python界面 可视化开发(python3+PyQt5+Qt Designer)

    千次阅读 多人点赞 2019-11-17 21:14:59
    以前制作一个Python窗体界面,我都是用GUI窗口视窗设计的模块Tkinter一点一点敲出来的,今天朋友问我有没有Python窗体的设计工具,“用鼠标拖拖”就能完成窗体设计,我查了查相关资料,果然有一款好用的工具——Qt ...
  • 索引本章最佳实践正式开始编辑准备界面UI实体编写准备界面UI逻辑类UITankItem类UIReady类进入下一流程 本章最佳实践 UI界面管理器。 正式开始 在前几章我们已经完成了准备界面所需要的大部分内容,比如坦克、武器...
  • 在Python-OpenCV中显示图像时调用的是一个单独的窗口,有时我们需要将这些图像显示在PyQt的图形化界面上,这样就可以将整个图像显示与PyQt图形化界面进行整合。但OpenCV格式的图像和PyQt格式的图像并不同,这就需要...
  • Java Swing 图形界面开发(目录)

    万次阅读 多人点赞 2017-05-30 23:50:42
    Java Swing 图形界面(GUI)开发基础教程(目录)
  • centos7安装图形化界面图文详解

    万次阅读 多人点赞 2019-09-05 11:03:00
    centos7没有图形化操作可能对很多人来说都不太习惯,下面我们来为centos7安装图形化界面,本文以安装 GNOME 图形化为例 写在安装前: 如果你的centos7是最小化安装的那默认都是不带X WINDOWS的,那在安装图形化界面...
  • 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、一...
  • Python - 编写可视化界面(Python+PyCharm+PyQt)

    万次阅读 多人点赞 2018-02-11 15:19:18
    Python编写可视化界面 最近开始学习Python,但只限于看理论,编几行代码,觉得没有意思,就想能不能用Python编写可视化的界面。遂查找了相关资料,发现了PyQt,由于前一段时间刚看过Qt,而且对Qt的印象很好,于是...
  • Qt界面开发(一)(各种控件以及图表)

    万次阅读 多人点赞 2017-12-28 21:51:56
    注:资源主要来源:http://www.qtcn.org/bbs/u/110085... 如若侵权,请联系删除。 本文只是将作品集合到起来,方便大家一起学习。 ... Qt界面开发(各种控件以及图表) 1.Qt简洁窗体 源代码链接:点击打开链接 2....
  • HTML(css+div)登录界面

    万次阅读 多人点赞 2018-05-31 23:53:39
    HTML(css+div)登录界面
  • 网页制作:一个简易美观的登录界面

    万次阅读 多人点赞 2016-03-09 17:22:59
    这次来总结一下公司的Task 1 实现一个登录界面。 登录界面其实在大三的时候就有做过,但是当时做的界面超级low,主要区别在于有无css,由于公司的设计要求,对于该界面的很多细节处理实在不容易。所以,还是想要写...
  • Java Swing 图形界面开发简介

    万次阅读 多人点赞 2017-05-30 23:52:47
    Java Swing GUI 图形界面窗口开发基础教程,本教程将系统性地详细介绍 Swing 开发中常用的一些组件、布局管理器等相关知识技术,并且每章节都将通过代码实例展示实际应用。Swing 是 Java 为图形界面应用开发提供的...
  • MATLAB GUI界面编程——一些细节问题

    万次阅读 多人点赞 2019-01-06 22:59:58
    写在前面的话: 本篇博文主要对自己在进行MATLAB GUI设计时遇到的一些细节问题进行...一、使用MATLAB的GUIDE开发环境,来快速创建GUI界面 二、修改MATLAB GUI的.fig和.m文件名 三、修改MATLAB GUI界面的名字 四...
1 2 3 4 5 ... 20
收藏数 2,696,973
精华内容 1,078,789
关键字:

界面