我有99%的44/100的一切工作.我有一个林间空地文件,我使用gtkbuilder来渲染它,然后它出现了.除了我的treeview liststore中的数据之外的所有内容.我注意到默认情况下树视图不可见,并且将其设置为true会使一个框出现在树视图区域中,但是我无法在树视图中显示任何列表存储项.我在glade中定义的列表存储区中有一些默认数据,我也以编程方式添加了一些,但没有显示任何内容.是否有一些可见的开/关选项我不见了?
我需要能够以编程方式探索GTK GUI的结构.我有GtkWidget,我想找到那个小部件的任何孩子.现在我知道GtkContainer有一个查找子项的功能,而GtkContainer是从GtkWidget派生的.
无论如何我可以检查一个小部件是否是一个GtkContainer,然后执行演员表?如果没有,有没有其他方式我可以发现GtkWidget是我的孩子?
GTK允许您设置超时g_timeout_add
.就像g_signal_connect
,g_timeout_add
函数返回一个表示超时的id.那么,有没有办法使用id 取消超时?通过文档查看,我没有看到任何取消超时事件的方法,但我认为必须有一些方法,否则id
返回值的重点是g_timeout_add
什么?
那么,有没有办法取消超时事件,或者这只是需要通过设置"取消标志"手动处理的东西,可以在用户提供的超时处理函数中进行检查?
我正在开发一个必须在Windows和Linux上100%兼容的应用程序.在linux上我没有问题,但在Windows上我想出了这个消息:来自gi.repository import Gtk ImportError:没有名为gi的模块
我安装了pygobject,pygtkallinone,gtk ..我错过了什么?
我正在移植liblarch,一个处理有向无环图的库,从PyGTK(GTK2)到PyGObject内省(GTK3).我遇到了GtkTreeView的问题.
使用liblarch的应用程序需要按列对GtkTreeView进行排序,但同时,用户可以拖放行,在另一行下移动一行.为此我必须手动处理dnd_data_get()
,dnd_data_receive()
这是完全可以的.
GtkTreeView的最小设置在PyGTK下运行.行已排序,用户可以移动行.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import gtk
window = gtk.Window()
window.set_size_request(300, 200)
window.connect('delete_event', lambda w,e: gtk.main_quit())
# Define Liblarch Tree
store = gtk.TreeStore(str, str)
store.insert(None, -1, ["A", "Task A"])
store.insert(None, -1, ["B", "Task B"])
store.insert(None, -1, ["C", "Task C"])
d_parent = store.insert(None, -1, ["D", "Task D"])
store.insert(d_parent, -1, ["E", "Task E"])
# Define TreeView in similar way as it happens in GTG/Liblarch_gtk
tv = gtk.TreeView()
col = gtk.TreeViewColumn()
col.set_title("Title")
render_text …
Run Code Online (Sandbox Code Playgroud) gnome桌面上的某些应用程序(如图像查看器)使用主题的暗色变体.制作我自己的gtk程序需要什么代码才能使用这个主题的黑暗变体?
我试图将我的应用程序从linux移植到Windows,我有一个主题问题.在Linux中,这是一个盒子,只需编译它,应用程序使用良好的主题,看起来像本机.
我在MSYS2中安装了gtkmm3和gtk3,我正在用CMake构建它.这没关系,我不得不将所有dll复制到二进制目录以便能够执行它.我没有复制任何其他内容.我正在尝试创建"解压缩和执行"包.
我的问题是,该应用程序看起来不合适.它看起来并不原生.窗口周围有阴影,这在Windows10中很好,但在Windows 7中它看起来不是原生的.还缺少几个图标.
甚至gitk3-demo也以相同的方式看起来非原生(但它至少有最小化/最大化/关闭图标正确).
所以问题是:如何在Windows上实现GTK3应用程序的原生外观?或者至少是原生的窗户装饰品?
谢谢
我开始使用Glade,python和Gtk3库构建GUI.我想尝试查看在GUI中的容器内链接它的外部窗口.可能吗?哪个是最好的容器对象呢?
我开始搜索,但Gtk2中的简单方法(就像这里)在Gtk3中不能再使用了.
我在这里发现了一个非常有趣的帖子,它允许我设置目标窗口的正确ID,但我仍然对如何在GUI中显示它感到困惑.
我没有试图用cairo 改变这些教程.
到目前为止我的代码片段(我想在map_area容器中显示ID = 0x360000b的窗口,我必须使用"self."处理结构).暂时map_area容器是Drawingarea.
# if condition occurs
Gdk.Window.process_all_updates()
win_id = 0x360000b # from xwininfo command
root_win = GdkX11.X11Display.get_default()
win = GdkX11.X11Window.foreign_new_for_display(root_win, win_id)
width = win.get_width()
height = win.get_height()
self.map_area = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
pixbuf = Gdk.pixbuf_get_from_window(win, 0, 0, width, height)
cr = cairo.Context(self.map_area)
Gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0)
cr.paint()
Run Code Online (Sandbox Code Playgroud)
谁能帮我?先感谢您!
我是GUI设计和开发领域的新手.我确实有一些先前的经验,但这是使用Visual Basic.
我想基于命令行应用程序在linux上开发一个相当全面的(虽然不是最先进的)GUI应用程序.我有.做了一些谷歌搜索,我发现主要有三种好的(或者也许是我的感觉)方法来实现这个目标:
为了解决上述问题之一(或拒绝所有这些问题),我必须知道上面列表中每个项目的以下几个方面.这些方面按其优先顺序递减顺序为:
关于上述主题的任何想法都值得用黄金来衡量(我不想在一个月后意识到我为我的工作选择了错误的工具).有没有其他工具更适合我的目的,我不知道?
直落式答案最有帮助.
编辑:好的,所以我终于和Qt一起走了.仅仅因为它比GTK +更容易学习并且看起来更便携(对于我来说).