0
我使用python 3.5.1進行Python類編程。Python檢查按鈕
分配是:
(選擇的幾何圖形)編寫繪製一個矩形或橢圓形,如圖9.23的程序。用戶從單選按鈕中選擇一個圖形,並通過選擇一個檢查按鈕來指定是否填充該圖形。
from tkinter import *
class geometricFig:
def __init__(self):
window = Tk()
window.title("Geometric Figures")
self.canvas = Canvas(window, width = 200, height = 100, bg = "white")
self.canvas.pack()
frame = Frame(window)
frame.pack()
self.v1 = StringVar()
rbRect = Radiobutton(frame, text = "Rectangle", command = self.displayRect, variable = self.v1, value = '1')
rbOval = Radiobutton(frame, text = "Oval", command = self.displayOval, variable = self.v1, value = '2')
self.v2 = StringVar()
cbtFill = Checkbutton(frame, text = "Fill", command = self.processFill, variable = self.v2)
rbRect.grid(row = 1, column = 1)
rbOval.grid(row = 1, column = 2)
cbtFill.grid(row = 1, column = 3)
window.mainloop()
def displayRect(self):
self.canvas.delete("rect", "oval")
self.canvas.create_rectangle(10, 10, 190, 90, tags = "rect")
def displayOval(self):
self.canvas.delete("rect", "oval")
self.canvas.create_oval(10, 10, 190, 90, tags = "oval")
def processFill(self):
if self.v1.get() == '1':
self.canvas.delete("rect", "oval")
self.canvas.create_rectangle(10, 10, 190, 90, tags = "rect", fill = "red")
elif self.v1.get() == '2':
self.canvas.delete("rect", "oval")
self.canvas.create_oval(10, 10, 190, 90, tags = "oval", fill = "red")
else:
self.canvas.delete("rect", "oval")
geometricFig()
我能夠做的是創建窗口,並有單選按鈕繪製矩形和橢圓形。我也能夠實現檢查按鈕繪製一個填充的矩形或橢圓形,這取決於哪個單選按鈕被勾選。
但是,當我建立程序時,它啓動程序,所有無線電和檢查按鈕填充in。我必須取消選中程序的所有內容才能開始正常工作。另外,當我取消選中填充按鈕時,它不會填充形狀,但會在畫布上留下填充的形狀。
我能做些什麼來解決這些問題?