繁体   English   中英

PYGTK使用了比预期更多的屏幕空间

[英]PYGTK uses more screen space than expected

我正在使用PYGTK使用wGet和Python编写一个非常简单的下载管理器。 一切都做得不错,但它会占用很多屏幕空间...我的代码:

#!/usr/bin/python
import gtk
import os
def submitdownload(self):
    os.system("wget "+site.get_text() + " -P  "+ directory.get_text())
main=gtk.Window()
main.set_title("Simple Downloader with wGet")
structure=gtk.Table(2, 6, True)
label=gtk.Label("Simple downloader with wGet")
sitedes=gtk.Label("Your download link:")
site=gtk.Entry()
submit=gtk.Button("Submit download")
submit.connect("clicked", submitdownload)
directorydes=gtk.Label("Save to: ")
directory=gtk.Entry()
description=gtk.Label("Please don't close the black box (terminal window) or the application will close automatically. It is needed for the download.")
main.add(structure)
structure.attach(label, 0, 2, 0, 1)
structure.attach(sitedes, 0, 1, 1, 2)
structure.attach(site, 1, 2, 1, 2)
structure.attach(submit, 0, 2, 4, 5)
structure.attach(directorydes, 0, 1, 2, 3)
structure.attach(directory, 1, 2, 2, 3)
structure.attach(description, 0, 2, 5, 6)
main.connect("destroy", lambda w: gtk.main_quit())
main.show_all()
gtk.main()

它在右侧抛出了许多未使用的空间。 如何解决? 通过“ X”按钮关闭应用程序非常困难。

您似乎正在创建一个包含2行6列的表,而不是我认为要使用的6行2列-查看参考文档 ,您会看到在构造函数中排在第一位。

因为您已将homogenous设置为True ,所以表将所有列设置为相同的宽度和高度(这就是homogenous功能),并且因为您要了6列,所以添加了许多相同宽度的空白列使您的窗口大大扩大。

将行更改为:

structure = gtk.Table(6, 2, True)

...而且似乎更合理。 那是你的追求吗?

我个人建议创建一个HBox代表该列。 当您需要全角小部件时,只需将它们直接放入此容器中即可。 如果需要包含多个小部件的行,则可以创建一个VBox来代表该行,将小部件添加到该行,然后将VBox本身添加到HBox 这种方法乍看之下似乎有些摆弄,但是它允许GTK处理更多的布局本身,这通常会使您的应用程序处理尺寸更好(只要您正确提示每个小部件是否应该可扩展)。 另外,如果以后再添加更多小部件,则无需返回并更改行数和列数VBoxHBox在这方面更加灵活。 因此,总的来说,除非我真正想要的是固定的小部件网格(例如,如果我正在实现Minesweeper),否则我总是发现它们容易得多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM