Jon*_*let 6 python gtk user-interface pygobject
我正在开发使用Python和GTK另一个图像浏览器和查看器是目前非常简单:它由一个GtkWindow与GtkTreeView左侧显示我的图片列表中,并且GtkImage在右侧,显示实际图像.到现在为止还挺好.
现在,我想全屏显示,只显示黑色背景等图像.
我可以看到几种方法:
GtkImage,而不是,但我失去之前(信号为例)的窗口上我的设置,而我躲在肚里全屏窗口,这是一个有点所有的东西奇怪的;GtkImage里面,而不是(做在退出全屏相反);GtkHBox作为我的窗口的直接孩子,有两个孩子,并且在"正常"模式下仅显示第一个,而在全屏上仅显示第二个.这一切看起来都有点hacky,所以我想知道处理这种情况的推荐方法是什么.谢谢!
我认为实现这个的最简单方法是在一个布局中设置所有小部件并设置信号.然后,当您在全屏模式下切换时,您会看到一组可见且不可见的小部件.试试下面的演示.当您按F11时,这是一个简单的实现,可以进出全屏.HBox用于制作布局,左侧包含标签,右侧包含图像.我在标签上填写了一些虚拟文本,以便占用大量空间.当您切换进出全屏时,它将切换标签的可见性,从而使图像占据全屏空间或与标签共享.我只是使用了gtk附带的一张图片用于演示目的.下面是两个屏幕截图,显示了进出全屏的布局.
码
import gtk
def keypress(win, event):
if event.keyval == gtk.keysyms.F11:
win.is_fullscreen = not getattr(win, 'is_fullscreen', False)
action = win.fullscreen if win.is_fullscreen else win.unfullscreen
action()
label.set_visible(not win.is_fullscreen)
win = gtk.Window()
win.connect("delete-event", gtk.main_quit)
win.connect('key-press-event', keypress)
image = gtk.image_new_from_stock(gtk.STOCK_ABOUT, gtk.ICON_SIZE_DIALOG)
label = gtk.Label(('test ' * 20 + '\n') * 20)
vbox = gtk.HBox()
vbox.add(label)
vbox.add(image)
win.add(vbox)
win.show_all()
gtk.main()
Run Code Online (Sandbox Code Playgroud)
正常窗口

全屏

| 归档时间: |
|
| 查看次数: |
2266 次 |
| 最近记录: |