标签: gtk3

如何从xid获取Gdk窗口?

我在版本3中丢失..在python2 + gdk2中是:

#!/usr/bin/env python2
import gtk

gtk.gdk.window_process_all_updates()
window_xid = 54525964
gdk_window = gtk.gdk.window_foreign_new(window_xid)
Run Code Online (Sandbox Code Playgroud)

这非常直截了当.但是,恐怖:

#!/usr/bin/env python3
from gi.repository import xlib
from gi.repository import Gdk
from gi.repository import GdkX11

Gdk.Window.process_all_updates()
xlib_window = "???????"
gdk_display = GdkX11.X11Display.get_default()
gdk_window = GdkX11.X11Window.foreign_new_for_display(gdk_display, xlib_window)
Run Code Online (Sandbox Code Playgroud)

xlib杀了我..我无法用它做任何事情.有没有人在使用它之前?

我已经多次使用的文档是: Gdk3, Xlib

从xid获取窗口是在python2中获取屏幕截图的最快方法我想我会在python3中尝试另一种方式..任何想法?也许peek_children从根窗口?但是,我怎么知道它是否是我想要的窗口?

xlib python-3.x gtk3

8
推荐指数
1
解决办法
2771
查看次数

对pygtk3的反思可能吗?

python的一大优点是能够对方法和函数进行内省.举个例子,要获得函数签名,math.log你可以(在ipython中)运行:

In [1]: math.log?
Type:       builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form:    <built-in function log>
Namespace:  Interactive
Docstring:
    log(x[, base])

    Return the logarithm of x to the given base.
    If the base not specified, returns the natural logarithm (base e) of x.
Run Code Online (Sandbox Code Playgroud)

并查看该功能的参数x和可选项base.

使用新的gtk3和自动生成的pygobject绑定,我可以在所有示例中尝试只获取(*args, **kwargs)每个gtk方法的参数.

示例:Label.set_text 需要一个字符串:

In [1]: from gi.repository import Gtk
In [2]: mylabel = Gtk.Label("hello")
In [3]: mylabel.set_text?
Type:       instancemethod
Base Class: <type 'instancemethod'>
String Form: …
Run Code Online (Sandbox Code Playgroud)

python pygtk pygobject gtk3

8
推荐指数
1
解决办法
949
查看次数

如何使用自定义CSS设置GTK +样式?

有人可以用css为一个GTK +小部件设置样式吗?我无法弄清楚如何查看文档:

#include <gtk/gtk.h>
int main(int argc,char *argv[])
{
    gtk_init(&argc,&argv);
    GtkWidget *window;
    GtkWidget *button;
    GtkCssProvider *cssProvider;

    gtk_css_provider_load_from_path(cssProvider,"./gtkExample2.css",NULL);

    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    button = gtk_button_new_with_label("GTK Button");

    gtk_style_context_add_provider(gtk_widget_get_style_context(window),cssProvider,GTK_STYLE_PROVIDER_PRIORITY_USER);

    g_signal_connect_swapped(window,"delete-event",G_CALLBACK(gtk_widget_destroy),window);

    gtk_container_set_border_width(GTK_CONTAINER(window),20);
    gtk_container_add(GTK_CONTAINER(window),button);

    gtk_widget_show(window);
    gtk_widget_show(button);

    gtk_main();
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

css linux gtk ubuntu gtk3

8
推荐指数
0
解决办法
1万
查看次数

如何使用PyGI GTK中的GIO操作创建完整的菜单?

我正在尝试在我的Gtk应用程序中转换菜单栏,因此它将使用GActions(来自Gio)而不是GtkActions使用GObject Instrospection的Python3.

我一直试图自己解决这个问题,但到目前为止看起来非常复杂,我没有太多运气.

如果有人可以请发布一个如何创建GAction基于的简单菜单的示例

  • 一个子菜单
  • 带有库存ID图标/热键的菜单项
  • 带有非库存图标/热键的菜单项
  • 已检查的菜单项
  • 和收音机菜单项目组
  • 禁用(灰显)菜单项

这对我很有帮助.

编辑:这是我现在在窗口中的菜单栏:

在此输入图像描述

如果有人可以复制使用GioActions显示的菜单项,那么我就可以弄清楚它们是如何工作的,这样会很棒.

顺便说一下,我使用窗口回调的所有操作都不是app回调,所以这是一个窗口菜单栏而不是app菜单栏.

python gtk pygobject python-3.x gtk3

8
推荐指数
1
解决办法
3104
查看次数

GTK3绘图区教程似乎不存在?

我自己一直在学习GTK3,现在我被困在Gtk.DrawingArea上了.与GTK中的大多数小部件和功能一样,似乎缺乏关于此的更新文档和教程.关于我发现的内容(希望这将有助于其他一些失去的googlers)的参考,lazka的自动生成的文档是我最好的资源:

http://lazka.github.io/pgi-docs/Gtk-3.0/classes/index.html

但是,绘图区域页面没有描述的方法.

http://lazka.github.io/pgi-docs/Gtk-3.0/classes/DrawingArea.html

这让我相信我对GTK和这个小部件有一个根本的误解,但我找不到任何解释如何使用它的东西!我能找到的唯一教程是这些,但它们都适用于旧版本;

3是这些教程中最好的,但我似乎无法在GTK3中使用它,老实说它非常先进.有些事情也被弃用,替换似乎非常神秘,并且不清楚它们如何与DrawingArea一起工作:http: //lazka.github.io/pgi-docs/Gtk-3.0/classes/Widget.html#Gtk.Widget. set_style

官方教程没有关于它的部分,并且在很长一段时间内没有显着更新:

http://python-gtk-3-tutorial.readthedocs.org/en/latest/objects.html

https://github.com/sebp/PyGObject-Tutorial

我现在的问题是,是否有人可以帮助我了解如何使用Gtk.DrawingArea绘制?那里有gtk3教程吗?

我目前的目标是根据算法的输出自动在绘图区域绘制黑点,并显示结果.我会展示我的代码,但我几乎没有任何东西.

python python-3.x gtk3 drawingarea

8
推荐指数
1
解决办法
4017
查看次数

GLib-GIO-ERROR**:系统上没有安装GSettings模式

不幸的是,我使用的是Windows(Windows7 x64).使用Code :: Blocks和GTK + 3.6.4中的MinGW编译器.我从glib手动编译了所有模式.


当我使用文件选择器对话框/颜色选择器 - 没关系时,我收到以下错误: GLib-GIO-ERROR**: No GSettings schemas are installed on the system程序终止.


我该怎么做才能解决这个问题?

c gtk mingw gtk3

8
推荐指数
2
解决办法
1万
查看次数

如何检测GtkStack或GtkStackSwitcher的变化

我正在尝试做的是检测用户何时更改GtkStack中的可见子项.

我正在使用GtkStackSwitcher作为按照这种设计显示按钮的可见方式:

PIC

因此 - 当一个人点击/切换其中一个按钮时,我想执行一些处理.

我应该连接哪个事件来实现这一目标?

我看过Gtk.StackGtk.StackSwitcher,但我没有看到任何明显的信号.关于最佳方式的任何想法?

这些似乎不是标准按钮 - 所以我不认为这种情况适用于'点击'事件.

我正在使用Ubuntu 14.04 Gtk + 3.10,python3

python gtk gtk3

8
推荐指数
1
解决办法
650
查看次数

在Mac上为python安装Gtk 3

我已经使用自制软件安装了python gtk3,但它打印出来了

警告:已经安装了gtk + 3-3.14.6

但是当我尝试在python中导入它时

 from gi.repository import Gtk
Run Code Online (Sandbox Code Playgroud)

它给出了错误

ImportError:没有名为gi.repository的模块

请帮忙.

python macos homebrew gtk3

8
推荐指数
2
解决办法
7120
查看次数

C:GTK + 3.0(3.20) - 从GNU/Linux(Arch Linux)到Windows的交叉编译

我需要将GNU/Linux(Arch Linux)中的GTK +应用程序交叉编译到Windows.我已经尝试过使用mingw32,但它没有看到所有库(包括c的标准库!).所以,我需要:找到标准的库; 找到所有其他(glib,gio,gtk等)库.但是有一个问题 - 我找不到它们.我也无法从Windows编译.我必须做什么?

c linux windows cross-compiling gtk3

8
推荐指数
1
解决办法
1656
查看次数

"将大小分配给..."在Gtk.ScrolledWindow中使用Gtk.TreeView时出现GTK警告

我在GTK 3应用程序中收到以下警告:

Gtk-WARNING**:在__main__+MCVEWindow 0000000004e93b30不调用gtk_widget_get_preferred_width/height()的情况下分配大小.代码如何知道要分配的大小?

Gtk.ScrolledWindow包含Gtk.TreeView附加到网格时,会发生警告,网格本身附加到网格上,gtk.ApplicationWindow并且有足够的元素供滚动条实际显示.如果没有足够的元素使其可滚动,则不会出现警告.

import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk as gtk


class MCVEWindow(gtk.ApplicationWindow):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self._tree_view = gtk.TreeView()
        self._tree_view.set_hexpand(True)
        self._tree_view.set_vexpand(True)

        self.populate_tree_view()  # populate tree view with fake items

        window_column = gtk.TreeViewColumn(
            "Window", gtk.CellRendererText(),
            text=0
        )
        window_column.set_resizable(True)
        handle_column = gtk.TreeViewColumn(
            "Handle", gtk.CellRendererText(),
            text=1
        )
        class_column = gtk.TreeViewColumn(
            "Class name", gtk.CellRendererText(),
            text=2
        )
        self._tree_view.append_column(window_column)
        self._tree_view.append_column(handle_column)
        self._tree_view.append_column(class_column)

        scrolled_tree_view = gtk.ScrolledWindow()
        scrolled_tree_view.add(self._tree_view)

        toolbar = gtk.Toolbar()

        expand_tree_view_button = gtk.ToolButton(icon_name="list-add") …
Run Code Online (Sandbox Code Playgroud)

python gtk pygobject python-3.x gtk3

8
推荐指数
1
解决办法
990
查看次数

标签 统计

gtk3 ×10

python ×6

gtk ×5

python-3.x ×4

pygobject ×3

c ×2

linux ×2

cross-compiling ×1

css ×1

drawingarea ×1

homebrew ×1

macos ×1

mingw ×1

pygtk ×1

ubuntu ×1

windows ×1

xlib ×1