我正在使用glade 3,创建TreeView并成功添加了行作为算法完成,但我有一个小问题,因为treeview将添加新行,因此我的"GUI"将变得更长到下面,我怎么能添加滚动条为这个TreeView?为了让我的"GUI"不再存在?
注意:我已添加"新调整"并将其连接到TreeView和ScrollBar垂直,但仍然无法完成工作.
任何的想法?
我正在尝试做键盘命令.当我插入S+ some_number+时,Return我需要调用一个函数,该函数将在列上看到此数字Gtk.Treeview并设置该行已选中.我怎样才能做到这一点?
我是C和C++的新手.但我有一些C++函数,我需要从C调用它们.我做了一个我需要做的例子
main.c:
#include "example.h"
#include <stdio.h>
int main(){
helloWorld();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
example.h:
#ifndef HEADER_FILE
#define HEADER_FILE
#ifdef __cplusplus
extern "C" {
#endif
void helloWorld();
#ifdef __cplusplus
}
#endif
#endif
Run Code Online (Sandbox Code Playgroud)
example.cpp:
#include <iostream.h>
void helloWorld(){
printf("hello from CPP");
}
Run Code Online (Sandbox Code Playgroud)
它只是不起作用.我仍然收到未定义参考错误_helloWorld在我main.c.这个问题在哪里?
我想知道我应该在这里应用哪种算法.将一个DFS吗?
给定一个二维矩阵.查找该矩阵中已连接集的总数.
连接集可以被定义为其上具有1个并且在该集合中具有至少一个其他小区的小区组,它们与所述小区共享邻居关系.其中包含1并且没有周围邻居的小区可以被认为是其中包含一个小区的集合.邻居可以被定义为在8个可能方向(即N,W,E,S,NE,NW,SE,SW方向)上与给定小区相邻的所有小区.细胞不是自身的邻居.
例如:
1 0 0 1
0 0 1 0
0 0 1 0
1 0 0 1
Run Code Online (Sandbox Code Playgroud)
连接数量为3
0 0 1 0 0 1 0 0
1 0 0 0 0 0 0 1
0 0 1 0 0 1 0 1
0 1 0 0 0 1 0 0
1 0 0 0 0 0 0 0
0 0 1 1 0 1 1 0
1 0 1 1 0 1 1 0
0 …Run Code Online (Sandbox Code Playgroud) 我有以下代码(抱歉大代码块,但我不能再缩小它)
template <bool B>
struct enable_if_c {
typedef void type;
};
template <>
struct enable_if_c<false> {};
template <class Cond>
struct enable_if : public enable_if_c<Cond::value> {};
template <typename X>
struct Base { enum { value = 1 }; };
template <typename X, typename Y=Base<X>, typename Z=void>
struct Foo;
template <typename X>
struct Foo<X, Base<X>, void> { enum { value = 0 }; };
template <typename X, typename Y>
struct Foo<X, Y, typename enable_if<Y>::type > { enum { value = 1 }; …Run Code Online (Sandbox Code Playgroud) 如果GSettings模式存在且已编译,则从中读取通常没有问题.但是,如果它不存在,通常会抛出一个无法处理的错误.在Python文件或控制台中尝试:
from gi.repository import Gio
try:
settings = Gio.Settings("com.example.doesnotexist")
except:
print "Couldn't load those settings!"
Run Code Online (Sandbox Code Playgroud)
我正在尽可能广泛地使用except,但这是抛出的错误.
(进程:10248):GLib-GIO-ERROR**:未安装设置架构'com.example.doesnotexist'
我基本上想要做的是找出com.example.doesnotexist架构是否存在; 如果没有,那么告诉用户在使用我的应用程序之前运行我的安装脚本.关于这样做的任何其他建议都是受欢迎的.
我有一个问题与Gtk.Treeviewindide a Gtk.ScrolledWindow.我有大量的数据,不适合我的普通窗口几何,所以我把我的Treeview放在一个ScrolledWindow,这似乎是正常的方式.这个解决方案的问题是,当我滚动时,我的列标题消失了.这种行为对我来说似乎有点好,因为它ScrolledWindow应该关心它里面的小部件.
那么,如何让我的树视图是滚动和第一行中总是显示栏标题?
我修改了basictreeview.py示例来表示我的问题:
#!/usr/bin/env python
# example basictreeview.py
import pygtk
pygtk.require('2.0')
import gtk
class BasicTreeViewExample:
# close the window and quit
def delete_event(self, widget, event, data=None):
gtk.main_quit()
return False
def __init__(self):
# Create a new window
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_title("Basic TreeView Example")
self.window.set_size_request(200, 200)
self.window.connect("delete_event", self.delete_event)
# create a TreeStore with one string column to use as the model
self.liststore = gtk.ListStore(str)
# we'll add some data …Run Code Online (Sandbox Code Playgroud) 我正在测试一个看起来像这样的窗口:

将标签拖动到卡片可将标签链接到卡片.将卡片拖动到标签也是如此.
在两张牌之间放一个标签,或者在两张牌之间放一张牌是没有意义的.我可以在Handle...DataReceived函数中忽略这些结果,如下所示:
if (dropPos != TreeViewDropPosition.IntoOrAfter &&
dropPos != TreeViewDropPosition.IntoOrBefore)
return;
Run Code Online (Sandbox Code Playgroud)
但是,在拖动时,用户仍会看到要插入的选项:

我该如何防止这种情况发生?
我有一个列表L我的类A的对象.这个类实现__str__/ __repr__,所以每个对象都有自己的字符串表示(不一定是唯一的).我在pygtk中有一个GUI,我有一个只有一列的TreeView小部件.我想用L中的对象的字符串表示来填充它,但是我希望将所选项目作为对象而不是字符串.有没有办法让TreeView存储对象列表,但是将它们显示为stings?如果没有,那么知道TreeView中选择了哪些对象的最佳方法是什么?问题还在于,根据某些条件,我可以不使用整个L填充TreeView,而是使用它的一些子列表,因此TreeView中的项目索引将与L中的项目索引不对应.
目前似乎缺乏针对python的GObjects模块的文档,所以也许有人可以帮助我.
我正在制作一个应用程序,偶尔必须通知用户发生了一个事件.我发现使用from gi.repository import Notify和相关的类使用一个简短的片段来获取Skype通知和C文档,但是当我调用Notify.uninit时它似乎没有关闭.程序关闭,但小通知窗口的东西保持不变,必须通过右键单击并选择"删除"来关闭.所以,我想知道是否有另一种方式,如果有类似的东西,如果有什么类似于Mac OS中的应用程序图标震动/反弹时发生的事情或在Windows中应用程序图标发出不同的颜色?
我喜欢带有消息堆栈等的Gnome 3通知系统,但是因为当我的应用程序退出时我似乎无法让它消失,我真的不想使用它(除非有人知道如何正确地做到这一点.. .it可能是我忘了设置超时,但这仍然没有意义,为什么我不能让通知点消失).