2017-08-06 46 views
1

我正在通過GTK + 3教程,以及所有我通過工作的示例 - 以及使用代碼編寫的代碼以及林間空地 - 產生比必要的更大的窗戶。Python GTK + 3教程 - 窗口出現過大,不像示例圖片

沒有人有我做錯了什麼,或者如何去修復它有何建議?

這裏有一個簡單的例子:

import gi 
gi.require_version('Gtk', '3.0') 
from gi.repository import Gtk 

class MyWindow(Gtk.Window): 

    def __init__(self): 
     Gtk.Window.__init__(self, title = 'Hello World') 

     self.box = Gtk.Box(spacing=6) 
     self.add(self.box) 

     self.button1 = Gtk.Button(label = 'Hello') 
     self.button1.connect('clicked', self.on_button1_clicked) 
     self.box.pack_start(self.button1, True, True, 0) 

     self.button2 = Gtk.Button(label = 'Goodbye') 
     self.button2.connect('clicked', self.on_button2_clicked) 
     self.box.pack_start(self.button2, True, True, 0) 

    def on_button1_clicked(self, widget): 
     print('Hello') 

    def on_button2_clicked(self, widget): 
     print('Goodbye') 

win = MyWindow() 
win.connect('delete-event', Gtk.main_quit) 
win.show_all() 
Gtk.main() 

這裏是我的代碼生成: MyCode

,這裏是什麼是應該看根據教程

Tutorial

+0

你能不能給一個指針教程? –

+0

https://python-gtk-3-tutorial.readthedocs.io/en/latest/layout.html#boxes – user45878

+0

而且,我應該提到,如果我手動調整窗口,其最小的尺寸,它看起來就像例。和我寫的其他程序一樣。就在我輸入代碼時,窗口每次都會顯示爲過大,而不是佔用內容所需的最小空間。 – user45878

回答

1

我能夠通過使用來解決這個問題:

self.set_default_size(50,25) 

win.set_default_size(50,25) 

Thaks爲幫助!

+0

記得在某個時候接受它作爲正確答案。 – theGtknerd

0

你的窗口管理器是不同的或具有從教程不同的設置。無論如何,我會嘗試這個代碼,用於設置窗口大小請求:

self.set_size_request(100, 50) 
+0

這不起作用 - 我無法設置比我指定尺寸更小的尺寸。我可以讓它更大 - (500,500)的工作方式就像人們所期望的那樣。 編輯:另外,我使用的是GNOME 3.2的窗口管理器,什麼是值得。 – user45878

+0

如何'self.set_default_width(100)'和'self.set_default_height(50)'? – theGtknerd

+0

你的兩個建議不起作用,但我使用ipython來獲取Gtk.Window類的目錄,並找到了解決方案(我覺得首先不做的愚蠢),但答案是: self .set_default_size(x,y) – user45878