‘壹’ python里tkinter如何重置单选按钮
打开图像时,使用单选按钮注释值。在
在列表中收集此值
因此,在这个例子中,我有2个复合词,列表将有2个注释。在
在import Tkinter as tk
from PIL import ImageTk, Image
from tkFileDialog import askopenfilename
cmp_list = ["VU435DR","VU684DR"]
li = []
li_final = []
def sel():
selection = str(var.get())
if selection == "1":
li.append("Antagonist")
elif selection == "2":
li.append("Agonist")
for i in range(len(cmp_list)):
root = tk.Tk()
var = tk.IntVar()
ig = str(cmp_list[i] + '.png')
img = ImageTk.PhotoImage(Image.open(ig))
panel = tk.Label(root,image=img)
panel.pack(side = "top",fill="none",expand="no")
#w = tk.Text(height=2,width=50)
#w.pack(side='right")
q = tk.Radiobutton(root,text="Antagonist",command=sel,value=1,variable=var)
q.pack()
r = tk.Radiobutton(root,text="Agonist",command=sel,value=2,variable=var)
r.pack()
root.mainloop()
print li
‘贰’ Python 中用 Tkinter GUI编程
可以使用sqlite,下面是使用方法。
导入PythonSQLITE数据库模块
Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~
importsqlite3
2.创建/打开数据库
在调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开。
cx=sqlite3.connect("E:/test.db")
也可以创建数据库在内存中。
con=sqlite3.connect(":memory:")
3.数据库连接对象
打开数据库时返回的对象cx就是一个数据库连接对象,它可以有以下操作:
commit()--事务提交
rollback()--事务回滚
close()--关闭一个数据库连接
cursor()--创建一个游标
关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,你也可以设置isolation_level=None,这样就变为自动提交模式。
4.使用游标查询数据库
我们需要使用游标对象SQL语句查询数据库,获得查询对象。通过以下方法来定义一个游标。
cu=cx.cursor()
游标对象有以下的操作:
execute()--执行sql语句
executemany--执行多条sql语句
close()--关闭游标
fetchone()--从结果中取一条记录,并将游标指向下一条记录
fetchmany()--从结果中取多条记录
fetchall()--从结果中取出所有记录
scroll()--游标滚动
1.建表
cu.execute("createtablecatalog(idintegerprimarykey,pidinteger,namevarchar(10)UNIQUE,nicknametextNULL)")
上面语句创建了一个叫catalog的表,它有一个主键id,一个pid,和一个name,name是不可以重复的,以及一个nickname默认为NULL。
2.插入数据
请注意避免以下写法:
#Neverdothis--insecure会导致注入攻击
pid=200
c.execute("...wherepid='%s'"%pid)
正确的做法如下,如果t只是单个数值,也要采用t=(n,)的形式,因为元组是不可变的。
fortin[(0,10,'abc','Yu'),(1,20,'cba','Xu')]:
cx.execute("insertintocatalogvalues(?,?,?,?)",t)
简单的插入两行数据,不过需要提醒的是,只有提交了之后,才能生效.我们使用数据库连接对象cx来进行提交commit和回滚rollback操作.
cx.commit()
3.查询
cu.execute("select*fromcatalog")
要提取查询到的数据,使用游标的fetch函数,如:
In[10]:cu.fetchall()
Out[10]:[(0,10,u'abc',u'Yu'),(1,20,u'cba',u'Xu')]
如果我们使用cu.fetchone(),则首先返回列表中的第一项,再次使用,则返回第二项,依次下去.
4.修改
In[12]:cu.execute("updatecatalogsetname='Boy'whereid=0")
In[13]:cx.commit()
注意,修改数据以后提交
5.删除
cu.execute("deletefromcatalogwhereid=1")
cx.commit()
6.使用中文
请先确定你的IDE或者系统默认编码是utf-8,并且在中文前加上u
x=u'鱼'
cu.execute("updatecatalogsetname=?whereid=0",x)
cu.execute("select*fromcatalog")
cu.fetchall()
[(0,10,u'u9c7c',u'Yu'),(1,20,u'cba',u'Xu')]
如果要显示出中文字体,那需要依次打印出每个字符串
In[26]:foritemincu.fetchall():
....:forelementinitem:
....:printelement,
....:
010鱼Yu
120cbaXu
7.Row类型
Row提供了基于索引和基于名字大小写敏感的方式来访问列而几乎没有内存开销。原文如下:
sqlite3.Rowprovidesbothindex-basedandcase-insensitivename-.-basedapproachorevenadb_rowbasedsolution.
Row对象的详细介绍
classsqlite3.Row
_factoryforConnectionobjects..
,iteration,representation,equalitytestingandlen().
,theycompareequal.
Changedinversion2.6:Addediterationandequality(hashability).
keys()
.Immediatelyafteraquery,.description.
Newinversion2.6.
下面举例说明
In[30]:cx.row_factory=sqlite3.Row
In[31]:c=cx.cursor()
In[32]:c.execute('select*fromcatalog')
Out[32]:<sqlite3.Cursorobjectat0x05666680>
In[33]:r=c.fetchone()
In[34]:type(r)
Out[34]:<type'sqlite3.Row'>
In[35]:r
Out[35]:<sqlite3.Rowobjectat0x05348980>
In[36]:printr
(0,10,u'u9c7c',u'Yu')
In[37]:len(r)
Out[37]:4
In[39]:r[2]#使用索引查询
Out[39]:u'u9c7c'
In[41]:r.keys()
Out[41]:['id','pid','name','nickname']
In[42]:foreinr:
....:printe,
....:
010鱼Yu
使用列的关键词查询
In[43]:r['id']
Out[43]:0
In[44]:r['name']
Out[44]:u'u9c7c'
‘叁’ python图形化界面设计tkinter
python提供了多个图形开发界面的库,几个常用Python GUI库如下:
Tkinter:Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.Tk和Tkinter可以在大多数的Unix平台下使用,同样可以应用在Windows和Macintosh系统里.,Tk8.0的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中。
wxPython:wxPython 是一款开源软件,是 Python 语言的一套优秀的 GUI 图形库,允许 Python 程序员很方便的创建完整的、功能键全的 GUI 用户界面。
Jython:Jython程序可以和Java无缝集成。除了一些标准模块,Jython使用Java的模块。Jython几乎拥有标准的Python中不依赖于C语言的全部模块。比如,Jython的用户界面将使用Swing,AWT或者SWT。Jython可以被动态或静态地编译成Java字节码。
Tkinter 编程
Tkinter 是Python的标准GUI库。Python使用Tkinter可以快速的创建GUI应用程序。
由于Tkinter是内置到python的安装包中、只要安装好Python之后就能import Tkinter库、而且IDLE也是用Tkinter编写而成、对于简单的图形界面Tkinter还是能应付自如。
创建一个GUI程序
1、导入Tkinter模块
2、创建控件
3、指定这个控件的master, 即这个控件属于哪一个
4、告诉GM(geometry manager)有一个控件产生了。
实例:
Tkinter 组件
Tkinter的提供各种控件,如按钮,标签和文本框,一个GUI应用程序中使用。这些控件通常被称为控件或者部件。
目前有15种Tkinter的部件。我们提出这些部件以及一个简短的介绍,在下面的表:
控件
描述
Button 按钮控件;在程序中显示按钮。
Canvas 画布控件;显示图形元素如线条或文本
Checkbutton 多选框控件;用于在程序中提供多项选择框
Entry 输入控件;用于显示简单的文本内容
Frame 框架控件;在屏幕上显示一个矩形区域,多用来作为容器
Label 标签控件;可以显示文本和位图
Listbox 列表框控件;在Listbox窗口小部件是用来显示一个字符串行表给用户
Menubutton 菜单按钮控件,由于显示菜单项。
Menu 菜单控件;显示菜单栏,下拉菜单和弹出菜单
Message 消息控件;用来显示多行文本,与label比较类似
Radiobutton 单选按钮控件;显示一个单选的按钮状态
Scale 范围控件;显示一个数值刻度,为输出限定范围的数字区间
Scrollbar 滚动条控件,当内容超过可视化区域时使用,如列表框。.
Text 文本控件;用于显示多行文本
Toplevel 容器控件;用来提供一个单独的对话框,和Frame比较类似
Spinbox 输入控件;与Entry类似,但是可以指定输入范围值
PanedWindow PanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。
LabelFrame labelframe 是一个简单的容器控件。常用与复杂的窗口布局。
tkMessageBox 用于显示你应用程序的消息框。
标准属性
标准属性也就是所有控件的共同属性,如大小,字体和颜色等等。
属性 描述
Dimension 控件大小;
Color 控件颜色;
Font 控件字体;
Anchor 锚点;
Relief 控件样式;
Bitmap 位图;
Cursor 光标;
几何管理
Tkinter控件有特定的几何状态管理方法,管理整个控件区域组织,一下是Tkinter公开的几何管理类:包、网格、位置
几何方法 描述
pack() 包装;
grid() 网格
place() 位置
‘肆’ 怎么在Python嵌入版中使用Tkinter
方法/步骤
第一步,打开eclipse开发工具,新建python文件;导入tkinter需要的包,设置窗口标题,如下图所示:
‘伍’ python tkinter 如何获取文本框中的内容
1、首先打开python,输入:
#coding:utf-8
importurllib,urllib2
importTkinter#导入TKinter模块
2、然后输度入:
ytm=Tkinter.Tk()#知创建Tk对象
ytm.title("login")#设置窗口标题
ytm.geometry("300x300")#设置窗口尺寸
3、然后输入:
l1=Tkinter.Label(ytm,text="用户名")#标签道
l1.pack()#指定包管理器放置组件
user_专text=Tkinter.Entry()#创建文本框
4、然后输入:
user_text.pack()
defgetuser():
user=user_text.get()#获取文本框内容
printuserTkinter.Button(ytm,text="登录",command=getuser).pack()#command绑定属获取文本框内容方法
ytm.mainloop()#进入主循环,就完成了。
‘陆’ 怎么在Python嵌入版使用Tkinter
额,上网下载TKinter.
然后按winows+r打开运行,输入cmd然后在cmd窗口输入cd <path>
这里的path是指你下载tkinter包后解压的文件路径,不用带括号。
输入完后输入pip TKinter install等待
如出现TKinter........install successful便安装成功。打开IDLE输入import tkinter便可以使用
‘柒’ python怎么用tkinter
Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口。作为 python 特定的GUI界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的GUI界面,我们可以用GUI 实现很多直观的功能,比如想开发一个计算器,如果只是一个程序输入,输出窗口的话,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的。
对于稍有GUI编程经验的人来说,Python的Tkinter界面库是非常简单的。python的GUI库非常多,选择Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,三则是从需求出发,Python作为一种脚本语言,一种胶水语言,一般不会用它来开发复杂的桌面应用,它并不具备这方面的优势,使用Python,可以把它作为一个灵活的工具,而不是作为主要开发语言,那么在工作中,需要制作一个小工具,肯定是需要有界面的,不仅自己用,也能分享别人使用,在这种需求下,Tkinter是足够胜任的!
‘捌’ python用tkinter创建一个登录界面
import tkinter
import tkinter.ttk
import tkinter.messagebox
root = tkinter.Tk()
root.title("登录")
userlabel = tkinter.Label(root,text="用户名:")
passwordlabel = tkinter.Label(root,text="密码:")
userlabel.grid(row=0,column=0)
passwordlabel.grid(row=1,column=0)
userentry = tkinter.ttk.Entry(root)
passwordentry = tkinter.ttk.Entry(root,show="●")
userentry.grid(row=0,column=1,padx=10,pady=2)
passwordentry.grid(row=1,column=1,padx=10,pady=2)
def get():
tkinter.messagebox.showinfo("结果","用户名:" + userentry.get() + "
密码:" + passwordentry.get())
yes = tkinter.ttk.Button(root,text="确定",command=get)
yes.grid(row=2,column=1)
root.mainloop()
效果图
‘玖’ python中tkinter模块如何消毁组件
如何在tkinter窗体上动态创建组件以及销毁组件的方法。
import tkinter
import tkinter.messagebox
import tkinter.simpledialog
btnList = []
# 动态创建组件,并计算组件在窗体上的位置
def place(n):
for i in range(n):
exec('btn'+str(i)+'=tkinter.Button(root,text='+str(i)+')')
eval('btn'+str(i)).place(x=80, y=10+i*30, width=60, height=20)
btnList.append(eval('btn'+str(i)))
root.geometry('200x'+str((n)*30+70)+'+400+300')
return n*30 + 10
# 创建tkinter应用程序
root = tkinter.Tk()
# 窗口标题
root.title('动态创建组件')
# 窗口初始大小和位置
root.geometry('200x180+400+300')
# 不允许改变窗口大小
root.resizable(False, False)
# 增加按钮的按钮
def btnSetClick():
n = tkinter.simpledialog.askinteger(title='输入一个整数',
prompt='想动态增加几个按钮:',
initialvalue=3)
if n and n>0:
startY = place(n)
modify(startY)
# 根据需要禁用和启用“增加按钮”和“清空按钮”
btnSet['state'] = 'disabled'
btnClear['state'] = 'normal'
btnSet = tkinter.Button(root,
text='增加按钮',
command=btnSetClick)
def btnClearClick():
global btnList
# 删除动态创建的按钮
for btn in btnList:
btn.destroy()
btnList = []
modify(20)
btnClear['state'] = 'disabled'
btnSet['state'] = 'normal'
btnClear = tkinter.Button(root,
text='清空按钮',
command=btnClearClick)
# 默认处于禁用状态
btnClear['state'] = 'disabled'
# 动态调整“增加按钮”和“清空按钮”的位置
def modify(startY):
btnSet.place(x=10, y=startY, width=80, height=20)
btnClear.place(x=100, y=startY, width=80, height=20)
modify(20)
root.mainloop()
代码运行后初始状态为:单击“增加按钮”后,在弹出的窗口中输入5,然后窗体变为下面的样子:
单击“清空按钮“后恢复到初始状态。