我熟悉Web编程,包括客户端和服务器端,我想扩展一点我的知识,以便能够编写一些桌面程序.
我的问题是我并不熟悉管理小部件的桌面方式.据我所知,在一个典型的桌面程序中,小部件有自己的生命,相互发送信号并通过回调对信号做出反应.所以每个小部件都是一个有很多方法的对象.这增加了我现在所知道的复杂性,我不确定我现在想要了解这一点.
在网络上,您可以使用标记语言(通常是某些版本的HTML)在页面上简明地描述元素,并且在触发事件时,您可以使用Javascript修改元素.我试图了解是否有办法在桌面程序中使用Web范例.我希望能够通过标记语言描述小部件(这些将是静态的)并根据事件改变它们.如果我理解正确,基于XUL的应用程序就是这样工作的.
问题是我能找到的关于XUL的文档似乎有点过时了.学习XUL是个好主意吗?我可以期待几年后仍在使用它吗?或者它已成为一项旧技术?
如果XUL不是一个好主意,有哪些替代方案?对于最简单的应用程序,小部件是静态的,或者只是稍作修改,有一些简单的 工具,但是更复杂的程序呢?
编辑:我应该提到我主要使用Ubuntu,所以我需要一个Linux或独立于操作系统的工具.
我特别喜欢以简单方式使用STL容器的简单性.
我从来没有真正弄清楚如何让Boost库在我的开发平台上运行,事实上我认为我甚至都没有尝试过.我猜你可以说我只是试图推迟不可避免的事情,因为Boost显然是一个我应该使用的有用的库.
但我的问题与本主题基本相同:如何使用类初始化STL向量/列表而不调用复制构造函数
我有std::list<ExpensiveClass> mylist;,我只想要一个函数将一个新实例推入列表并调用默认构造函数,而不是从它的临时堆栈实例中复制它.在另一个主题中提到了移动构造函数.我看了他们,坦率地说,除了恐惧之外什么都没有.两个&符号!
如果我只创建一个ExpensiveClass对象数组,它会工作吗?ExpensiveClass *mylist = new ExpensiveClass[20];这会调用构造函数20次吗?
在我看来我应该使用boost:ptr_list.
我在业余时间开始学习PHP,我给出的第一个代码示例如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该写出"Hello World".但是,我看到的只是一个空白的网页.任何想法为什么这样,我应该如何解决它?
假设我希望TextView我的应用中的所有实例都有textColor="#ffffff".有没有办法在一个地方设置它而不是为每个地方设置它TextView?
Dreamweaver CS5是否支持类似于Visual Studio 2010 CTRL+的自动格式化功能K,CTRL+ D?
谢谢!
我正在构建一个用户为其列表提供地址的应用程序.要求一个简单的用户为他提供的每个地址提供纬度和经度当然是不切实际的!
我可以向Google Maps API提供地址吗?如果是这样,怎么样?
谢谢.
是否有必要<tbody>在每张桌子上?根据标准.
我想实现一个同时具有 AdvancedTableFormat 和 WritableTableFormat 接口的 Glazed List。
我在这里阅读: http: //www.jroller.com/aalmiray/entry/glazedlists_groovy_not_your_regular
对于一个界面来说,在 Groovy 中使用“as”关键字似乎可以实现这一点:
# return new EventTableModel(linksList, [
# getColumnCount: {columnNames.size()},
# getColumnName: {index -> columnNames[index]},
# getColumnValue: {object, index ->
# object."${columnNames[index].toLowerCase()}"
# }] as TableFormat)
Run Code Online (Sandbox Code Playgroud)
是否可以以某种方式为两个接口执行此操作?如果是这样怎么办?
谢谢你!
米沙
我试图像下面的树表达式一样解析C函数(使用Spirit Parser Framework):
F( A() , B( GREAT( SOME , NOT ) ) , C( YES ) )
Run Code Online (Sandbox Code Playgroud)
为此,我试图使用以下语法的三个规则:
template< typename Iterator , typename ExpressionAST >
struct InputGrammar : qi::grammar<Iterator, ExpressionAST(), space_type> {
InputGrammar() : InputGrammar::base_type( ) {
tag = ( qi::char_("a-zA-Z_") >> *qi::char_("a-zA-Z_0-9") )[ push_back( at_c<0>(qi::_val) , qi::_1 ) ];
command = tag [ at_c<0>(qi::_val) = at_c<0>(qi::_1) ] >> "(" >> (*instruction >> ",")
[ push_back( at_c<1>(qi::_val) , qi::_1 ) ] >> ")";
instruction = ( command …Run Code Online (Sandbox Code Playgroud) c++ ×2
algorithm ×1
android ×1
boost ×1
boost-spirit ×1
clrs ×1
dreamweaver ×1
echo ×1
geocoding ×1
glazedlists ×1
google-maps ×1
groovy ×1
parsing ×1
php ×1
stl ×1
w3c ×1
xhtml ×1
xul ×1