Python与Tkinter编程
㈠ python编程关于tkinter图形用户界面编程的问题求助(新手求助!)
你好,下面是一个例子,你可以试试:
from tkinter import *
#import tkinter
import tkinter.messagebox as tm
import sys
#from Tkinter import *
#from tkMessageBox import *
def answer():
showerror("Answer", "Sorry, no answer available")
def callback():
if tm.askyesnocancel('Verify', 'Really quit?'):
print('Yes quit')
sys.exit(1)
else:
print('No')
Button(text='Quit', command=callback).pack(fill=X)
#Button(text='Answer', command=answer).pack(fill=X)
mainloop()
㈡ python与tkinter编程哪个有优势
个 人 喜 欢 py t ho n
㈢ Phython中Tkinter编程绘图啥的只能用Dos窗口吗
不能理解你的意思,如果简单的Tkinter编程,你可以在idle或者输入python后的shell中简单实用,如果复杂以一些的写在文件中运行。
我使用的是2.7.5,在idle和python shell 中都可以。
>>>fromTkinterimport*
>>>Tk().mainloop()
这样就会弹出窗口了。
㈣ Python2.X Tkinter编程
package Sort;
import java.util.Arrays;
import java.util.Random;
public class MergeSort {
public void sort(int array[]){
if(array.length== 0 ||array.length == 1)
return;
int mid = array.length/2;
int a[] = Arrays.OfRange(array, 0, mid);
int b[] = Arrays.OfRange(array, mid, array.length);
㈤ python tkinter编程问题。验证码输入框如何编写呢
你好:
给你一些参考文件:
很详细的讲解:
http://effbot.org/tkinterbook/tkinter-index.htm
㈥ python编程,使用Tkinter中的文本框显示系统时间
Python编程中,用Tkinter中的文本框获取系统当前的时间并且显示,代码如下:
importsys
fromtkinterimport*
importtime
deftick():
globaltime1
#从运行程序的计算机上面获取当前的系统时间
time2=time.strftime('%H:%M:%S')
#如果时间发生变化,代码自动更新显示的系统时间
iftime2!=time1:
time1=time2
clock.config(text=time2)
#
#
#coulse>200ms,butdisplaygetsjerky
clock.after(200,tick)
root=Tk()
time1=''
status=Label(root,text="v1.0",bd=1,relief=SUNKEN,anchor=W)
status.grid(row=0,column=0)
clock=Label(root,font=('times',20,'bold'),bg='green')
clock.grid(row=0,column=1)
tick()
root.mainloop()
㈦ python tkinter编程中如何把一个函数附加到Button上,比如写计算器中的等于号
#!/usr/bin/envpython
#-*-coding:utf-8-*-
importTkinter
classWindow:
def__init__(self,root):
self.root=root
self.setbtn=Tkinter.Button(root,text='SetText',command=self.Settxt)
#创建一个按钮对象,command=这个地方就是当按钮按下去时触发的函数
self.setbtn.place(x=120,y=15)
self.edit=Tkinter.Text(root)
self.edit.place(y=50)
self.edit.insert(Tkinter.END,"thisisoriginaltext")
defSettxt(self):
self.edit.insert(Tkinter.END,' thisisinstertext')
root=Tkinter.Tk()
window=Window(root)
root.minsize(600,480)
root.mainloop()
编写了一个最简单的例子,看了你就应该明了。
㈧ python Tkinter编程问题
可以用这个复制frame的winfo_width()方法获得实际宽度,winfo_height()可以获得高度,比如:
fr=Frame(tk)
fr.pack(side=TOP, fill=BOTH, expand=True)
print "frame size before update: ", fr.winfo_width(), fr.winfo_height()
fr.update()
print "frame size after update: ", fr.winfo_width(), fr.winfo_height()
㈨ PYTHON tkinter编程,请懂的人帮忙:
界面设计有一个基本原则,同样适用于tkinter,也就是说界面内是单线程的。所以界面的所有事件容,如果特别是耗时,不能几毫秒解决。就需要交给后台线程去做。后台线程做完了后就将结果放在一个变量里,再通常消息通知界面刷新。这样界面就不会卡住了。
doevents的原理是。强制停下当前线程,然后处处理一下窗口消息队列里的事件。不过有时候这个方法并不灵,也会出现界面卡死。
所以你绑定了事件,然后触发成功,也执行了。不过你执行的这段代码一直在循环运行,没有很快退出,这样界面当然就没有办法刷新了。
你可以启动一个线程去做你的那件事情。
㈩ 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'