我已经下载了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文件中的值进行比较?
因为"文件系统"和"rails"是这样的共同主题,无论是在一起还是分开,我都找不到任何在数据库中实现文件系统的Ruby on Rails开源应用程序.我想使用这样的应用程序作为起点或模板.
我已经能够实现User和Directory模型(后者使用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,因为重定向回同一页面不会保留树的展开/折叠状态.
然而,我有这种唠叨的感觉,我正在做一些已经做过很多次的事情.您能否提供有关此类应用程序的链接或提供有关实现模型部分和视图部分的提示?
Lua附带了5.2版本的免费在线参考手册(我正在使用),也可以使用Lua中的5.0版编程.
然而,这些版本之间有一些变化,我似乎无法超越.这些更改在5.2和5.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) 假设你在git存储库中有一个文件:
应该使用哪些API来创建删除该文件的提交?例如,在这个问题中,文件被提交而不在磁盘上创建它.现在是否可以在不使用索引(舞台区域)的情况下删除该文件?
我期待类似的流程,可能git_tree_entry为树构建器创建一个,但似乎并非如此.git_reference_list()没有列出文件,所以有一个死胡同.搜索删除和删除的来源也没有成功.
我有兴趣创建一个行为类似于代码区域的文本对象类型(继承QTextObjectInterface):
文档的其他区域需要以通常的方式运行(字体属性可编辑、颜色可编辑等)。
Qt 提供了一个使用QTextEdit实现自定义文本对象的示例。这看起来很难,因为新的文本对象不能使用 QTextEdit / QTextDocument中的现有基础结构。
可以将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小部件中实现代码区域?
后期编辑:
由于没有使用libgit2进行最后一次提交的复制粘贴示例,我想我应该添加一个.libgit2中的示例广泛使用git_oid_fromstr()...
不要忘记libgit2目前处于全面开发阶段(2013年3月),因此请查看官方文档和源代码,因为每天都会添加新功能: