2017-12-18 12 views
0

私はLシステムに関するプロジェクトを持っています。私はLシステムを印刷するカメを追加しようとしました。ただし、テキストフィールドとは異なり、キャンバスは展開されません。私がテキストをもっと印刷すると、私のテキストフィールドがスクロールバーで大きく拡大しています。しかし、そのカメはキャンバスに詰まっています。私は本当に立ち往生している。Python Canvasがカメ印刷用に自動的に展開しない

frame2 = tki.Frame(frame, bg='yellow', width=810, height=510) 
frame2.pack() 
frame2.place(x=500,y=5) 
cv = Canvas(frame2, width=2000, height=2000) 
cv.place(x=0, y=0) 

screen = turtle.TurtleScreen(cv) 
t = turtle.RawTurtle(screen) 

hbar=Scrollbar(frame2,orient=HORIZONTAL) 
hbar.pack(side=BOTTOM,fill=X) 
hbar.config(command=cv.xview) 
vbar=Scrollbar(frame2,orient=VERTICAL) 
vbar.pack(side=RIGHT,fill=Y) 
vbar.config(command=cv.yview) 
cv.config(width=800,height=500) 
cv.config(xscrollcommand=hbar.set, yscrollcommand=vbar.set) 
cv.pack(side=LEFT,expand=True,fill=BOTH) 
+0

は( 'パックを使用していない'と '同時に場所()' - 彼らは二つの異なる「レイアウトマネージャ」です – furas

+0

最小限の作業を作成:動的にキャンバスを拡大するScrolledCanvasreset()方法を追加しました例だからそれを実行し、あなたの問題を見ることができます。 – furas

+0

canasはこの機能を持たないため拡張できません。手作業で行う必要があるかもしれません。 – furas

答えて

1

私が正しくあなたの質問を理解していれば、亀のライブラリはあなたのために、この目的の作業のために提供ScrolledCavasない理由:

EDIT:私はフレームサイズでキャンバスサイズを開始しましたし、 )

import tkinter as tk 
from turtle import TurtleScreen, RawTurtle, ScrolledCanvas 

size = 100 
canvsize = 300 

root = tk.Tk() 
root.geometry('600x500') 

frame = tk.Frame(root, width=300, height=300) 
frame.pack() 
frame.place(x=50, y=50) 

canvas = ScrolledCanvas(frame, canvwidth=canvsize, canvheight=canvsize) 
canvas.pack(side=tk.LEFT) 

screen = TurtleScreen(canvas) 
screen.bgcolor('yellow') 

turtle = RawTurtle(screen, visible=False) 
turtle.dot(size, "green") 

def expand(): 
    global canvsize, size 

    if size < 800: 
     size += 10 
     if size > canvsize: 
      canvsize += 100 
      canvas.reset(canvwidth=canvsize, canvheight=canvsize) 

     turtle.dot(size, "green") 
     screen.ontimer(expand, 100) 

screen.ontimer(expand, 100) 

screen.mainloop() 
+0

ありがとうあなたの時間。あなたは私の言うことにとても近いです。問題は、私は100から800に成長するドットを観察したかったということです。言い換えれば、スクロールバーを持たない画面を作成したいのですが、タートルが印刷を開始してフレームサイズを超えようとすると、スクロールバーで拡張できます。テキストボックスのように... –

+0

@VuralErdogan、私はそれが最初にスクロールバーを持っていないが、イメージがフレームの水平と垂直のエッジを過ぎて拡張としてそれらを追加するので、それを再加工しました。おそらく完璧ではなくシンプルで、カメ 'ScrolledCanvas'だけを使用します。 – cdlane

+0

ああ!それはまさに私がやろうとしていることです。大いに感謝する。あなたの技術を私のプロジェクトに使用します。 –

関連する問題