2013-06-23 42 views
8

Làm cách nào để tạo cửa sổ bật lên trong Tkinter khi nhấn nút? Khi nút 'Giới thiệu' được nhấp vào, tôi muốn một cửa sổ bật lên với tuyên bố từ chối trách nhiệm + về văn bản.Làm cách nào để tạo cửa sổ bật lên trong Tkinter khi nhấn nút?

Tôi đã cố gắng thiết lập phương pháp def nhưng nó phải rất sai vì nó không hoạt động như tôi muốn. Bất kỳ trợ giúp sẽ được rất nhiều đánh giá cao.

Cảm ơn bạn

import sys 
from Tkinter import * 

def clickAbout(): 
    name = ("Thanks for the click") 
    return 

app = Tk() 
app.title("SPIES") 
app.geometry("500x300+200+200") 

labelText = StringVar() 
labelText.set ("Please browse to the directory you wish to scan") 


labelText2 = StringVar() 
labelText2.set ("About \n \n \ 
SPIES will search your chosen directory for photographs containing \n \ 
GPS information. SPIES will then plot the co-ordinates on Google \n \ 
maps so you can see where each photograph was taken.") 

labelText3 = StringVar() 
labelText3.set ("\n Disclaimer \n \n \ 
Simon's Portable iPhone Exif-extraction Software (SPIES) \n \ 
software was made by Simon. This software \n \ 
comes with no guarantee. Use at your own risk") 

label1 = Label(app, textvariable=labelText, height=0, width=100) 
label1.pack() 

label1 = Label(app, textvariable=labelText2, height=0, width=100) 
label1.pack() 

label = Label(app, textvariable=labelText3, height=0, width=100) 
label.pack() 

b = Button(app, text="Quit", width=20, command=app.destroy) 
b.pack(side='bottom',padx=0,pady=0) 

button1 = Button(app, text="About SPIES", width=20, command=clickAbout) 
button1.pack(side='bottom',padx=5,pady=5) 

app.mainloop() 

Trả lời

14

Nếu bạn muốn hiển thị văn bản trên một cửa sổ mới, sau đó tạo ra một widget mục cấp đầu và sử dụng nó như là cha mẹ của các nhãn cho các văn bản về và từ chối trách nhiệm.

Bằng cách này, các biến Tkinter là không cần thiết nếu bạn có văn bản tĩnh, vì vậy trong trường hợp này bạn chỉ có thể loại bỏ chúng và thay thế chúng với chuỗi multiline:

import sys 
from Tkinter import * 

ABOUT_TEXT = """About 

SPIES will search your chosen directory for photographs containing 
GPS information. SPIES will then plot the co-ordinates on Google 
maps so you can see where each photograph was taken.""" 

DISCLAIMER = """ 
Disclaimer 

Simon's Portable iPhone Exif-extraction Software (SPIES) 
software was made by Simon. This software 
comes with no guarantee. Use at your own risk""" 

def clickAbout(): 
    toplevel = Toplevel() 
    label1 = Label(toplevel, text=ABOUT_TEXT, height=0, width=100) 
    label1.pack() 
    label2 = Label(toplevel, text=DISCLAIMER, height=0, width=100) 
    label2.pack() 


app = Tk() 
app.title("SPIES") 
app.geometry("500x300+200+200") 

label = Label(app, text="Please browse to the directory you wish to scan", height=0, width=100) 
b = Button(app, text="Quit", width=20, command=app.destroy) 
button1 = Button(app, text="About SPIES", width=20, command=clickAbout) 
label.pack() 
b.pack(side='bottom',padx=0,pady=0) 
button1.pack(side='bottom',padx=5,pady=5) 

app.mainloop() 
+0

Cảm ơn bạn, đó là một vĩ đại help –

+1

@Bob: Bạn có thể muốn thêm một 'toplevel.focus_force()' vào cuối hàm 'clickAbout()' để kích hoạt cửa sổ mới (đó là những thứ như thế này hoạt động như thế nào trong hầu hết các ứng dụng). – martineau

Các vấn đề liên quan