2013-11-15 157 views
5

我想創建一個按鈕,並使用下面的代碼更改高度和寬度,但實際的按鈕不顯示在物理上。但是,如果您將鼠標懸停在應該顯示的區域上,單擊它將打開新窗口。有任何想法嗎?tkinter按鈕的高度和寬度

import sys 
from tkinter import * 

#main menu 
def mmWindow(): 
    mmWindow=Tk() 
    mmWindow.geometry('600x600') 


#first window 
mWindow= Tk() 
mWindow.geometry('1920x1080+0+0') 
mWindow.title('DMX512 Controller') 

wtitle = Label (mWindow, text = "Pi DMX", fg = 'blue') 
wtitle.place(x = 640, y = 100) 

#main menu button 
mmbutton = Button (mWindow, text = "Main Menu",command = mmWindow) 
mmbutton.place(x=200, y = 200) 
mmbutton.config(width=200, height=200) 
+0

事實上,它確實表明身體。問題是,由於它太大,很難與窗口的其餘部分區分開來。 – iCodez

+0

學校男孩錯誤!謝謝,現在我的下一個問題,我可以改變寬度,但高度的原始錯誤仍然發生,按鈕的實際物理大小不會改變,但'點擊'區域.......你可能已經猜到了對Python的noob。 – user2996828

+0

我對你在做什麼感到有點困惑。爲什麼要製作一個按鈕,然後將其放置在窗口上後將其高度/寬度更改爲一行?你想在這裏做什麼?你想做什麼特別的事情嗎?或者你只是試圖讓自定義尺寸的按鈕放在窗口上? – iCodez

回答

3

關於你最初的問題:確實出現物理按鈕。問題是,由於它太大,很難與窗口的其餘部分區分開來。

現在,你說你的最終目標是改變一個按鈕的大小。如果是這樣,那麼你是在正確的軌道上:你使用heightwidth選項。

不過,我會建議你對代碼進行一些更改:

  1. 不要使按鈕如此巨大。即使在一個非常大的顯示器上,有一個按鈕的大小是過度殺傷。
  2. 不要讓窗戶那麼大。沒有人希望佔用整個屏幕的應用程序。使用.grid代替.place。這樣做會使您更容易將小工具放在您想要的地方。
  3. 設置製作按鈕時的heightwidth選項,而不是之後。
  4. 這裏沒有必要導入sys。只導入你需要的東西。
  5. 請勿像這樣導入:from tkinter import *。這樣做會在全局名稱空間中轉儲大量可輕易覆蓋的名稱。

這裏是我的版本的腳本:

import tkinter as tk 

def mmWindow(): 
    mmWindow = tk.Tk() 
    mmWindow.geometry('600x600') 

mWindow = tk.Tk() 
# You can set any size you want 
mWindow.geometry('500x500+0+0') 
mWindow.title('DMX512 Controller') 

wtitle = tk.Label(mWindow, text="Pi DMX", fg='blue') 
wtitle.grid(row=0, column=1) 

# You can set any height and width you want 
mmbutton = tk.Button(mWindow, height=5, width=20, text="Main Menu", command=mmWindow) 
mmbutton.grid(row=1, column=1) 

mWindow.mainloop() 
+0

謝謝你,我剛剛複製你的代碼並運行它,然後我試着改變高度,它仍然不會改變按鈕的大小,因爲在大綱保持相同的大小,它會改變寬度,但沒有高度....... – user2996828

+0

@ user2996828 - 呵呵,我恐怕我不知道這是爲什麼。我給的代碼在一個正常的操作系統(Windows,Mac,Linux)上工作。然而,你確實說過「觸摸屏」,這意味着某種平板電腦。我沒有平板電腦,所以我不能排除這個問題。 – iCodez

+0

也許是我的設置,我目前沒有運行它一個觸摸屏,只是我的Mac運行IDLE Python版本3.3.2和tk版本8.5.14,我確實認爲它奇怪的是,寬度發生了變化,高度沒有變化:-s – user2996828