2016-06-24 6 views
4

tk.Buttonまたはttk.Buttonを縦向きにすることはできますか?オリエンテーションのようなスマイルはself.scrlbr = tk.Scrollbar(master, orient = vertical)の方法でtk.Scrollbartkinterに垂直方向のボタンを付けることは可能ですか?

tk.Button(*args).pack(fill = tk.Y)を試しましたが、希望の効果が得られません。ボタンはまだ水平になっています。

マニュアルページには何も見つかりませんでしたが、いくつかの正しからざる方法がありますか?

+0

だけの事は 'tk.Button(マスター、テキスト=「\ NB \ ncは\ nで整理されます\ d \ n \ e ')。pack(fill = tk.Y) '。ボタンの垂直方向を取得しますが、より堅牢な方法がいくつかありますか?もう一度おねがいします –

+1

実際にボタンのテキストを垂直に向けたい、つまり90°回転させて上から下に移動する(またはその逆)たぶんあなたは写真を追加することができます。 –

+0

ありがとうございました!テキストを90度回転させることも素晴らしいでしょう。しかし、はい、[この回答](http://stackoverflow.com/a/38012733/6470235)を使用して、私は現時点で知っている唯一のavailbleソリューションです。 –

答えて

3

ボタンウィジェットはこのオプションを提供しませんが、必要に応じてボタンウィジェットをエミュレートして効果を得ることができます。前述のように、回転されたテキストを含むイメージを使用する方法もあります。あなたのテーマに応じて、canvasを使ってボタンを作成して、angleオプションを使って描画したテキストを回転させることもできます。これはWindowsのテーマでは奇妙に見えますが、使用されているウィジェットはTk(ttkウィジェットではありません)またはttkでTk描画された要素(UNIXではデフォルト)を使用するテーマであれば正常に見えます。

それがどのように見えるかの粗製のデモ:私が思い付くことができ

enter image description here

import tkinter as tk 
import tkinter.font as tkfont 
main = tk.Tk() 
font = tkfont.nametofont("TkDefaultFont") 
label = "Click Me" 
height = font.measure(label) + 4 
width = font.metrics()['linespace'] + 4 
canvas = tk.Canvas(main, height=height, width=width, background="SystemButtonFace", borderwidth=2, relief="raised") 
canvas.create_text((4, 4), angle="90", anchor="ne", text=label, fill="SystemButtonText", font=font) 
canvas.bind("<ButtonPress-1>", lambda ev: ev.widget.configure(relief="sunken")) 
canvas.bind("<ButtonRelease-1>", lambda ev: ev.widget.configure(relief="raised")) 
canvas.place(x=5, y=height + 10) 
main.mainloop() 
関連する問題