发布于2019-10-14 20:55 阅读(1123) 评论(0) 点赞(28) 收藏(5)
我正在使用Python和Gtk开发另一个图像查看器,并且该查看器目前非常简单:它由一个组成,GtkWindow
其中一个GtkTreeView
在左侧显示我的图像列表,一个GtkImage
在右侧显示实际图像。到现在为止还挺好。
现在,我想全屏显示,只显示黑色背景等图像。
我可以看到几种方法:
GtkImage
而是显示一个大窗口,但是我失去了之前在窗口上设置的所有内容(例如信号),并且隐藏了全屏显示的窗口,这有点奇怪的;GtkImage
里面(在退出全屏时进行相反操作);GtkHBox
作为窗口的直接子项添加,并有两个子项,并在“正常”模式下仅显示第一个,而在全屏模式下仅显示第二个。所有这些似乎都有些古怪,所以我想知道推荐哪种方法来处理这种情况。谢谢!
我认为最简单的方法是在所有小部件设置和信号设置中采用一种布局。然后,当您在全屏模式下切换时,您会看到一组窗口小部件,这些窗口小部件可以显示和不显示。试试下面的演示。这是一个简单的实现,当您按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()
普通窗
全屏
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/136801/358166b1e22851806376/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!