小编Cap*_*liC的帖子

Graphviz中的水平树

我用点语言制作了一棵树,类似于这里的树.

有什么方法可以让树向右扩展,而不是向下扩展(所以根节点在左边,子节点在右边).

dot graphviz

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

QTextEdit中的文本格式很好,就像Qt Creator一样

Qt Creator发现一个很好的格式化操作,在一些文本周围绘制一个薄框(这里的一个例子,我指的是addRow周围的框架,黄色区域是一个文本查找操作的结果,该操作也已经找到了找到的位置,然后我移动了光标..)

在此输入图像描述

我一直无法找到如何在QTextEdit中获得该效果.我试图从Qt Creator来源阅读,但它们对于不知情的搜索来说太大了......

编辑

我刚才开始研究自定义的QTextCharAttribute

class framedTextAttr : public QTextObjectInterface {...}
Run Code Online (Sandbox Code Playgroud)

编辑

这是有效的:根据我的答案如下.

qt

15
推荐指数
2
解决办法
4484
查看次数

(SWI)Prolog作为NoSQL平台怎么样?

我希望看到(SWI)Prolog宣传为NoSQL'认真的竞争者'.

(SWI)Prolog拥有令人敬畏的数据绑定功能,当然还有很多功能来编写针对这些大数据的逻辑.

随着最近的PLGI贡献,编写一个复杂的Gnome GUI变得非常简单...... NoSQL研究员最期待哪些功能?RDF的反应性CRUD如何发声?

我已经测试了运行几个Gnome接口的PLGI - 像GtkClutter这样的标准,或者像graph_gtk一样自编(图形编辑器,我从 -gtk 移植它,同时学习本机GIntrospection和GObject/GtkWidgets基础......我想我'我准备以声明的方式绑定Gtk - 或者通常是GObjects.

database rdf prolog swi-prolog plgi

9
推荐指数
1
解决办法
383
查看次数

错误编译Spirit示例

这个问题的接受答案引导我进入这个示例,但编译它会给出一个很长的错误列表.这里是示例代码,我只添加了includes和一个虚拟main():

#include <boost/spirit/include/qi.hpp>
#include <vector>
#include <map>
#include <string>
#include <iostream>

namespace qi = boost::spirit::qi;

template <typename Iterator>
struct keys_and_values
  : qi::grammar<Iterator, std::map<std::string, std::string>()>
{
    keys_and_values()
      : keys_and_values::base_type(query)
    {
        query =  pair >> *((qi::lit(';') | '&') >> pair);
        pair  =  key >> -('=' >> value);
        key   =  qi::char_("a-zA-Z_") >> *qi::char_("a-zA-Z_0-9");
        value = +qi::char_("a-zA-Z_0-9");
    }
    qi::rule<Iterator, std::map<std::string, std::string>()> query;
    qi::rule<Iterator, std::pair<std::string, std::string>()> pair;
    qi::rule<Iterator, std::string()> key, value;
};

int main(int argc, char **argv)
{
    std::string input("key1=value1;key2;key3=value3");  // input …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-spirit std-pair

5
推荐指数
1
解决办法
730
查看次数

一个prolog程序优化绿色削减和红色切割

我有一个prolog程序.但现在我对prolog不是很熟悉.所以从这里寻求帮助.

以下Prolog程序确定了保险费汽车保险.保险费取决于车辆的马力和驾驶员的年龄.

calculateCarInsurance(PS,Insurance) :-
   PS < 60 , Insurance = 100.
calculateCarInsurance(PS,Insurance) :-
   PS >= 60 , PS < 100 , Insurance = 200.
calculateCarInsurance(PS,Insurance) :-
   PS >= 100 , Insurance = 300.
isInRiskyGroup(Age) :- Age < 25.
calculateCarInsurance(PS,Age,_) :- Age < 18 , fail.
calculateCarInsurance(PS,Age,Insurance) :-
   Age >= 18 , isInRiskyGroup(Age) ,
   calculateCarInsurance(PS,I2) ,
   Insurance is I2 * 2.
calculateCarInsurance(PS,Age,Insurance) :-
   not(isInRiskyGroup(Age)) ,
   calculateCarInsurance(PS,Insurance).
Run Code Online (Sandbox Code Playgroud)

现在需要a)用Green Cuts优化程序.b)通过删除不需要的谓词,将绿色更改为红色削减.程序的行为应该是相同的.

我已经理解了prolog程序,但可以通过优化绿色削减来解决.谢谢,任何人都可以用细节解释a,b.谢谢

optimization prolog

3
推荐指数
1
解决办法
247
查看次数

符号处理:无法比较身份

我不明白为什么

(setq a_sym 'abc)
(print (eq a_sym 'abc))

(print (eq 'x 'x))
(print (eq (first '('x 2 3)) 'x))
Run Code Online (Sandbox Code Playgroud)

版画

T 
T 
NIL 
Run Code Online (Sandbox Code Playgroud)

为什么'x第三个语句中的符号与第二个语句的处理方式不同?并且,脚踏实地,如何比较它们的身份?

lisp equality common-lisp quote

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