質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1177閲覧

Python3 ウインドウについて

banax

総合スコア7

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/02/13 13:24

編集2018/02/13 13:35

イメージ説明### 前提・実現したいこと

pythonを使って、おみくじのプログラムを作っています。
tkinterを使ってウインドウを表示させ、ウインドウの中にボタンを作りました。
そしてそのボタンをクリックすると、おみくじの結果(例:大吉です)を表示させたい。

発生している問題・エラーメッセージ

ボタンをクリックすると、おみくじの結果(例:大吉です)を表示させるやり方がわかりません。

該当のソースコード

ここに言語名を入力 : python3

ソースコード

上 : おみくじのコード
下 : ウインドウのコード

#coding: utf-8
import random

a = random.randint(1,9)
b = random.randint(1,9)
c = "今日のあなたの運勢は"

#print(a)

if a == 1:
print(c + "とても良い")
elif a <= 3:
print(c + "良い")
elif a <= 6:
print(c + "普通")
elif a <= 8:
print(c + "悪い")
else:
print(c + "とても悪い")

coding: utf8

import tkinter as tk

root = tk.Tk()
root.geometry("350x150")
root.title("あなたの今日の運勢")

labell = tk.Label(root,text="ボタンを押してください",font = ("Helvetica",15))
labell.place(x = 60, y = 5)

buttonl = tk.Button(root,text = "占う",width = 15,font = ("Helvetica",10))
buttonl.place(x = 110,y = 70)

root.mainloop()

試したこと

補足情報(FW/ツールのバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y-doi

2018/02/13 14:01

質問の書き方の話ですが、コードの部分は`を使って、  ```コード``` というふうにしてください
guest

回答1

0

ベストアンサー

bindメソッドを用います。

bind(sequence, func):

sequenceは、イベントの型を示す文字列です。funcには呼び出される関数を指定します。
例えば、ボタンが左クリックの場合イベントの型を示す文字列は、"<Button-1>"です。他にもいろいろあるようです。公式解説はまだ見つけられていませんが、解説はごろごろあります。

python3

1import tkinter as tk 2import random 3 4 5def get_res(): 6 ''' 7 結果文字列を生成します 8 ''' 9 a = random.randint(1, 9) 10 b = random.randint(1, 9) 11 c = "今日のあなたの運勢は" 12 13 if a == 1: 14 res = c + "とても良い" 15 elif a <= 3: 16 res = c + "良い" 17 elif a <= 6: 18 res = c + "普通" 19 elif a <= 8: 20 res = c + "悪い" 21 else: 22 res = c + "とても悪い" 23 24 return res 25 26 27def Show_res(event): 28 ''' 29 結果を表示します 30 ''' 31 root = tk.Tk() 32 root.geometry("350x150") 33 root.title("結果") 34 labell = tk.Label(root, text=get_res(), font=("Helvetica", 15)) 35 labell.place(x=60, y=5) 36 root.mainloop() 37 38 39root = tk.Tk() 40root.geometry("350x150") 41root.title("あなたの今日の運勢") 42labell = tk.Label(root, text="ボタンを押してください", font=("Helvetica", 15)) 43labell.place(x=60, y=5) 44buttonl = tk.Button(root, text="占う", width=15, font=("Helvetica", 10)) 45 46# ここでバインドメソッドを用いてボタンが押されたことを検知できるようにします。 47#Show_resを指定してやることで、Show_resコールバックとして呼ばれます。 48 49buttonl.bind("<Button-1>", Show_res) 50buttonl.pack() 51buttonl.place(x=110, y=70) 52root.mainloop()

投稿2018/02/13 16:15

rinren

総合スコア107

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

banax

2018/02/14 03:56

ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問