小编Nic*_*fan的帖子

qmake数值变量比较

我已经下载了Qt 5并尝试构建我的项目.现在需要项目将小部件添加到QT变量,但是会产生旧版本的警告:

项目消息:警告:未知QT:小部件

简单的解决方案似乎添加了一个简单的检查:

equals( $$QT_MAJOR_VERSION, 5 ) {
  message(" ================ QT 5 ================ ")
  QT += widgets
} else {
  message(" ================ QT 4 ================ ")
}
Run Code Online (Sandbox Code Playgroud)

这没用(QT 4打印).确实,equals不是qmake函数引用的一部分,但包含的是.所以试过:

contains( $$QT_MAJOR_VERSION, 5 )   {
  message(" ================ QT 5 ================ ")
  QT += widgets
} else {
  message(" ================ QT 4 ================ ")
}
Run Code Online (Sandbox Code Playgroud)

但这也行不通.诸如contains("$$ QT_MAJOR_VERSION","5")之类的各种其他组合不起作用.

使用如下行检查$$ QT_MAJOR_VERSION为4或5的假设:

message( $$QT_MAJOR_VERSION )
Run Code Online (Sandbox Code Playgroud)

设置局部变量并以这种方式测试其值不起作用.

所有这一切的结论是我不了解qmake机制的基本内容.那么如何将变量与qmake .pro文件中的值进行比较?

qt qmake qt5

7
推荐指数
2
解决办法
2952
查看次数

Rails实现基于数据库的文件系统

因为"文件系统"和"rails"是这样的共同主题,无论是在一起还是分开,我都找不到任何在数据库中实现文件系统的Ruby on Rails开源应用程序.我想使用这样的应用程序作为起点或模板.

我已经能够实现UserDirectory模型(后者使用Ancestry),我正在为File模型工作(我的应用程序只需要一种文件).

class User < ActiveRecord::Base
  attr_accessible :email, :name, :password, :password_confirmation
  has_secure_password
  has_many :directories, dependent: :destroy
  # ...
end # class User

class Directory < ActiveRecord::Base
  attr_accessible :name, :parent_id
  has_ancestry
  belongs_to :user
  has_many :files, dependent: :destroy
  # ...
end # class Directory

# not actually implemented, yet
class File < ActiveRecord::Base
  attr_accessible :name
  belongs_to :directory
  # ...
end # class File
Run Code Online (Sandbox Code Playgroud)

在视图中我使用jsTree来呈现树和一个表单来添加/删除,编辑......这需要改为使用AJAX,因为重定向回同一页面不会保留树的展开/折叠状态.

然而,我有这种唠叨的感觉,我正在做一些已经做过很多次的事情.您能否提供有关此类应用程序的链接或提供有关实现模型部分和视图部分的提示?

ruby filesystems ruby-on-rails

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

嵌入Lua 5.2并定义库

Lua附带了5.2版本的免费在线参考手册(我正在使用),也可以使用Lua中的5.0版编程.

然而,这些版本之间有一些变化,我似乎无法超越.这些更改在5.25.1参考手册的后续版本中有所说明.注意连续弃用有luaL_openlib()利于luaL_register(),然后luaL_register()赞成luaL_setfuncs().

网上搜索结果不一,其中大多数指向luaL_register().

我尝试实现的目标可以通过以下迷你程序进行总结,该程序可以编译并链接,例如, gcc ./main.c -llua -ldl -lm -o lua_test

#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>

#include <stdio.h>
#include <string.h>


static int test_fun_1( lua_State * L )
{
    printf( "t1 function fired\n" );
    return 0;
}

int main ( void )
{
    char buff[256];
    lua_State * L;
    int error;

    printf( "Test starts.\n\n" );

    L = luaL_newstate();
    luaL_openlibs( L …
Run Code Online (Sandbox Code Playgroud)

c embed lua

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

使用libgit2从git存储库中删除文件

假设你在git存储库中有一个文件:

  • A.TXT

应该使用哪些API来创建删除该文件的提交?例如,在这个问题中,文件被提交而不在磁盘上创建它.现在是否可以在不使用索引(舞台区域)的情况下删除该文件?

我期待类似的流程,可能git_tree_entry为树构建器创建一个,但似乎并非如此.git_reference_list()没有列出文件,所以有一个死胡同.搜索删除和删除的来源也没有成功.

c c++ libgit2

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

QTextEdit 中的自定义文本(代码)区域

我有兴趣创建一个行为类似于代码区域的文本对象类型(继承QTextObjectInterface):

  • 独特的背景
  • 边界
  • 等宽字体
  • 可编辑的内容
  • 实例需要可识别代码,以便可以提取其中的内容(将代码与周围的内容分开)
  • 保存/加载(来自常规 html 文件)
  • 语法高亮将是一个加号,但并不是真正必需的

文档的其他区域需要以通常的方式运行(字体属性可编辑、颜色可编辑等)。


Qt 提供了一个使用QTextEdit实现自定义文本对象的示例。这看起来很难,因为新的文本对象不能使用 QTextEdit / QTextDocument中的现有基础结构

QTextObject

可以将QTextDocument 的各个部分组合在一起的不同类型对象的基类

所以继承它可能是一种选择,但它在 Qt SDK 包中的源文件和谷歌搜索都没有透露有用的信息。

QTextFrame继承了QTextObject,因此,如果要找到有关此路径的一些提示,它可能是一个可行的基类。


在一个简单的 HTML 文件中,所有这些(语法高亮除外)都很容易。QTextEdit以 html 为输入,能够导出 html,但在此过程中会丢失结构。

<code class="code-sample">
  int i = 0;
</code>
Run Code Online (Sandbox Code Playgroud)

顺便说一下,QWebView是只读的。它的广告是:

HTML 文档的一部分可以是可编辑的,例如通过 HTML 元素上的 contenteditable 属性。


可能还有其他平台可以轻松使用,但是文本编辑器需要作为插件在Qt Creator 内部使用,所以使用Qt 框架是有意义的。

底线:如何在QTextEdit小部件中实现代码区域?


后期编辑:

  • 使用主干中的 Qt sdk(将自身标识为 4.8.4)
  • 主干中的 Qt …

c++ qt custom-controls qtextedit qtextdocument

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

如何使用libgit2从git存储库中获取HEAD的最后一次提交?

由于没有使用libgit2进行最后一次提交的复制粘贴示例,我想我应该添加一个.libgit2中的示例广泛使用git_oid_fromstr()...

不要忘记libgit2目前处于全面开发阶段(2013年3月),因此请查看官方文档和源代码,因为每天都会添加新功能:

c c++ libgit2

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