畫布的屬性「寬度」的值是否有限制?畫布的寬度是否有限制
在以下示例中,我在ScrolledWindow中創建了一個Canvas。
# Packages
package require BWidget
# Mainframe
set mfr [MainFrame .mfr -textvariable "Test"]
pack $mfr -fill both -expand yes
# Create a Paned Window with two panes
set pw1 [PanedWindow [$mfr getframe].pw1 -side left]
set pat [$pw1 add -minsize 200]
set pai [$pw1 add -minsize 200]
pack $pw1 -fill both -expand yes -anchor nw
# Create a frame for each pane
set tft [TitleFrame $pat.tft -text "Scrollable Canvas"]
set tfi [TitleFrame $pai.tfi -text "Informations"]
pack $tft -fill both -expand yes -anchor nw
pack $tfi -fill both -expand yes -anchor nw
# Create a canvas inside a ScrolledWindow for the first pane
set swt [ScrolledWindow [$tft getframe].swt -relief sunken -borderwidth 2 -scrollbar horizontal -auto none]
set sft [ScrollableFrame $swt.sft -width 50000 -height 200]
$swt setwidget $sft
set tab [canvas [$sft getframe].tab -width 50000 -height 200 -background black]
# Draw an horizontal line on the canvas
$tab create line 0 100 50000 100 -width 1 -fill white
pack $tab -fill both -expand yes -anchor nw
pack $swt -fill both -expand yes -anchor nw
# Create a ScrolledWindow for the second pane
set swl [ScrolledWindow [$tfi getframe].swl -relief sunken -borderwidth 2 -scrollbar vertical -auto both]
pack $swl -expand yes -fill both
# Display the window manager
wm minsize . 600 350
wm deiconify .
wm protocol . WM_DELETE_WINDOW {exit}
bind . <Control-q> {exit}
在本例中,我使用的「50 000」的寬度爲畫布上,但是當我使用滾動條畫布的黑箱之前結束。同樣的問題也會影響畫布上繪製的水平線。
我錯過了什麼嗎? 畫布的「width」屬性是否有已知限制?
感謝您的幫助
是的,我最近沒有看最近的瀏覽器畫布尺寸最大值,但他們曾經是8k-12k寬度或高度,最大值爲2mb最大。恕我直言,過多的帆布尺寸通常是爲了「扁平化」設計要求而創建的。如果由於畫布大小而遇到問題(例如,您已超出瀏覽器的最大大小),那麼您應該將其作爲信號將您的設計更改爲不太平。 – markE 2014-10-26 21:42:24
渲染所需的緩衝區大小完全取決於視口的大小(畫布的可見部分)。但是,當使用coords從視口中可見的「short」範圍(_after_平移到視口座標)繪製事物時,座標計算會有點不可思議。 – 2014-10-27 10:08:36