#codeing:utf-8
import tkinter
import tkinter.messagebox
from tkinter import filedialog
from tkinter import *

#定义响应函数
def CopyCmd():
tkinter.messagebox.showinfo("消息框","这是一个消息框\n你选中的是复制")

def PasteCmd():
tkinter.messagebox.askokcancel('提示','这是一个消息框\n你选中的是粘贴')

def OpenFile():
r = filedialog.askopenfilename(title='打开文件', filetypes=[('Python', '*.py *.pyw'), ('All Files', '*')])
e1.delete(0,END) #清除输入框
e1.insert(10,r) #输入框赋值
a1=e1.get() #取得新值
print(a1) #打印新值

def SaveFile():
r = filedialog.asksaveasfilename(title='保存文件', initialdir='d:\mywork', initialfile='hello.py')
print(r)

#开始描绘界面
root=tkinter.Tk()
root.title('自定义GUI界面')
root.geometry('400x300+380+120') #自定义窗体大小
root["bg"] = "peru" #窗口背景色
root.resizable(False, False) #固定窗体大小

#标签
label=tkinter.Label(root,text="这是一个提示",font=("宋体",9,"normal"),fg='blue',bg='peru')
label.place(relx=0.085, rely=0.07)

#输入框
e1=tkinter.Entry(root,width=40,font=("宋体",9,"normal"),bg="lightblue",fg="midnightblue")
e2=tkinter.Entry(root,width=30,font=("宋体",9,"normal"),bg="lightblue",fg="midnightblue")

e1.place(relx=0.085, rely=0.15)
e2.place(relx=0.085, rely=0.25)

e1.insert(10,"这是默认值")
e2.insert(12,"这是第二个输入框")

#按钮
button1=tkinter.Button(root,text="打开文件",font=("宋体",9,"normal"),fg='red',bg='wheat',command=OpenFile)
button1.place(relx=0.1, rely=0.8, relwidth=0.2, relheight=0.13)
button2=tkinter.Button(root,text="保存文件",font=("宋体",9,"normal"),fg='green',bg='wheat',command=SaveFile)
button2.place(relx=0.35, rely=0.8, relwidth=0.2, relheight=0.13)

#定义一个右键菜单
menu=tkinter.Menu(root,tearoff=0)
menu.add_command(label="复制",command=CopyCmd)
menu.add_command(label="粘贴",command=PasteCmd)
menu.add_separator()
menu.add_command(label="剪切")
def popupmenu(event):
menu.post(event.x_root,event.y_root)
root.bind("<Button-3>",popupmenu)

root.mainloop()

python3下GUI界面设计之控件精确定位的更多相关文章

  1. 界面设计-Edit控件的Style设置

    以下文字转贴ChinaCock QQ 223717588群: 1. 首先在Form上放一个TEdit类型控件Edit1,最终的效果如下图: 2.选中控件Edit1,点击鼠标右键,在弹出菜单中选择“Ed ...

  2. MATLAB(3)——GUI界面设计入门

    作者:桂. 时间:2017-03-01  18:43:35 链接:http://www.cnblogs.com/xingshansi/articles/6485688.html 声明:转载请注明出处, ...

  3. asp.net中遍历界面上所有控件进行属性设置

    * 使用方法: *  前台页面调用方法,重置:    protected void Reset_Click(object sender, EventArgs e)        {           ...

  4. GUI学习之四——QWidget控件学习总结

    上一章将的QObject是PyQt里所有控件的基类,并不属于可视化的控件.这一章所讲的QWidget,是所有可视化控件的基类. QWidget包含下面几点特性 a.控件是用户界面的最小的元素 b.每个 ...

  5. Excel开发学习笔记:界面交互与控件的布局

    遇到一个数据处理自动化的问题,于是打算开发一个基于excel的小工具.在业余时间一边自学一边实践,抽空把一些知识写下来以备今后参考,因为走的是盲人摸象的野路子,幼稚与错误请多包涵. , ).value ...

  6. PyQt5多个GUI界面设计

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/90454379 - 写在前面 本科毕业设计终于告一段落了.特 ...

  7. android 支持上拉加载,下拉刷新的列表控件SwipeRefreshLayout的二次封装

    上拉加载,下拉刷新的列表控件,大家一定都封装过,或者使用过 源代码,我会在最后贴出来 这篇代码主要是为了解决两个问题 1.滑动冲突得问题 2.listview无数据时,无数据布局的展示问题 下方列出的 ...

  8. Asp.net绑定带层次下拉框(select控件)

    1.效果图 2.数据库中表数据结构 3.前台页面 <select id="pid" runat="server" style="width:16 ...

  9. 不在界面上用控件 动态创建idhttp,IdAntiFreeze来用

    不在界面上用控件 动态创建idhttp,IdAntiFreeze来用 var IdHTTP: Tidhttp; IdAntiFreeze: TidAntiFreeze; begin IdAntiFre ...

随机推荐

  1. python excle读

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/4/24 9:57 # @File : Excel读.py # @Softwa ...

  2. SOFARPC —— Generic Service (泛化调用) 解析

    今晚心情无比激动,多云转晴!原因在于弄懂些 Generic Service 实现原理,很有成就感. 各位看官莫笑,今晚,小小的收获,也是非常满足的.下面进入正题! 一.前言 普遍RPC在客户端需要提供 ...

  3. SP3871 GCDEX - GCD Extreme

    //author Eterna #define Hello the_cruel_world! #pragma GCC optimize(2) #include<iostream> #inc ...

  4. C++ 实数类

    这是一堆我自己写完都怀疑人生的代码. 或许我见识太少了吧-- 实现一个实数类.这个类也可以看作是分数类.实现了基本的四则运算和比较.另外,与整数或小数的转换还没有实现,无限循环小数转分数也暂时没有实现 ...

  5. mini-treeselect的动态赋值

    <div id="faultTree" allowdrag="false" allowdrop="true" class=" ...

  6. 嵌入式C语言预处理使用

    #include  包含头文件 #define 宏 #define 宏名 (宏体)    //不进行语法检查 #define ABC(x) (5+(x))    //宏函数 #define #else ...

  7. <python的线程与threading模块>

    <python的线程与threading模块> 一 线程的两种调用方式 threading 模块建立在thread 模块之上.thread模块以低级.原始的方式来处理和控制线程,而thre ...

  8. PCI9054 总结(讲解非常清楚)

    转载自:http://blog.csdn.net/lg2lh/article/details/8042008 PCI的基本协议这里就不介绍了,因为一般的芯片协议都是集成好的,我只需要大体了解就行,不需 ...

  9. SpringBoot启动源码探究---listeners.starting()

    1.首先调用starting()方法,其内部是一个对所有listener的starting()调用的for循环,然后每个listener调用另一个starting方法,其内部调用multicastEv ...

  10. 使用uiautomator2进行webview页面的测试

    1.开发开启webview debug模式 2.使用VirtualXposed框架进行webview测试,详细见https://testerhome.com/topics/16156 下载,安装Vir ...