teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

書式の改善

2021/03/28 10:33

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Tkinterで、ラベルを書き換えるタイミンを音楽再生される前にした
1
+ Pythonのプロラム実行される順番で困ってます
body CHANGED
@@ -1,16 +1,27 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- PythonのTkinterで、ボタンを押すとラベルを書き換えて、音楽が流れるようなもの作りたい。
3
+ PythonのTkinterで、以下のような機能実現したいです
4
4
 
5
+ 0. ボタンを押す
6
+ 0. ラベルを書き換える(歌詞を表示する)
7
+ 0. 音楽を再生する
8
+
5
9
  ### 発生している問題・エラーメッセージ
6
10
 
7
11
  ボタンを押した後、音楽が鳴り終わった後にラベルが変更されてしまうので、ラベルを変更してから音楽が流れるようにしたい。
8
12
 
13
+ ||現状|目標|
14
+ |--:|:--|:--|
15
+ |1|ボタンを押す|ボタンを押す|
16
+ |2|音楽の再生が始まる|ラベルを書き換える|
17
+ |3|音楽の再生が終わる|音楽の再生を始める|
18
+ |4|ラベルが変更される|音楽の再生を終える|
19
+
9
20
  ### 該当のソースコード
10
21
 
11
22
  ボタンを押すと`play_game`が呼び出されます。`play_game`の中では、ラベルを変更する関数`change_label`をthreadを用いて呼び出し、さらに音楽を再生する関数`play_music`を呼び出しています。しかし、実際には音楽の再生→ラベルの変更の順で呼び出されてしまいます。
12
23
 
13
- `play_game`の中の`lyric[1]`には歌詞(ラベルを書き換える文字)が、`lyric[2]` `lyric[3]`には音楽の再生開始位置と終了位置(ミリ秒)が、`lyric[5]`にはファイル名が入っています。
24
+ `play_game`の中の`lyric[1]`には歌詞(ラベルを書き換える文字)が、`lyric[2]` `lyric[3]`には音楽の再生したい部分の開始位置と終了位置(ミリ秒)が、`lyric[5]`にはファイル名が入っています。
14
25
 
15
26
  ```Python
16
27
  import sqlite3