2014-07-04 27 views

回答

1

UPDATE:鑑於新的細節,我相信喬恩的答案是正確的。

OLD ANSWER:自1.72.00開始,Builder中繪圖的順序由它們在rutine中的順序控制。最頂層的組件先繪製,然後再繪製頂層,依此類推。底部組件始終位於頂部。

組件在例行的順序可以通過右鍵單擊一個組件上進行更改,彈出上下文菜單中包含「上移」,「下移」,「移動到頂部」項目等

補充說明:在代碼中,繪製順序是簡單的代碼行的順序:

background.draw() 
stim.draw() # on top of background 
fixationCross.draw() # on top of the other. 
win.flip() # show it 

您可以驗證的助洗劑看它生成的Python代碼正是這樣做的。

+0

感謝您的回覆喬納斯。 – jacanterbury

+0

有一個[建議編輯](https://stackoverflow.com/review/suggested-edits/5232894)關於改變組件的順序,被拒絕。它應該是一個評論,這樣你,@Jonas,可以編輯它。在這裏發佈鏈接,以免失去寶貴的意見。 – Palec

+0

對不起,我不能在我的文章(下文)中說清楚我不想創建對話框。我只是想要顯示一個多邊形,在Builder代碼模塊中繪製一個在Builder例程中創建的多邊形。似乎所有gui創建的組件總是在代碼中創建的ANY組件之前創建的,而不考慮時間流。 – jacanterbury

1

代碼組件代碼實際上是按順序插入的,以及代碼形式的標準組件。代碼在創建期間的不同例程中的順序未指定(您無法控制首先執行哪個例程的「開始實驗」代碼),但這並不影響您的繪圖深度。

關鍵在於在例程中,「每幀」部分中的代碼和draw()命令必須按照正確的順序(在標準組件之前)。