我正在开发一个图形应用程序来呈现数据(不是游戏,而是真正的主力应用程序).它需要跨平台,所以我选择了:
最后一个组件--WX - 提出了一个问题.我可以把一个非常好看的应用程序放在一起(原型看起来很光滑) - 但是当我需要与用户交互以提问,获取输入时,我必须使用WX.它使应用程序看起来不一致,传统的UI与传统的对话框和组合和文本输入在全屏幕3D应用程序之上,混合,平滑运动,纹理等.
有没有人使用OpenGL和python开发GUI?你能与我分享你使用的工具包和/或技巧吗?我需要组合,文本输入,按钮,收音机,选项按钮,树视图.
有一些工具包,但它们要么是不完整的,要么是旧的并且没有维护.一个很好的例子是pyUI(http://pyui.sourceforge.net/) - 看上去很光滑,但未触及多年.
我正在使用System.Xml来读取C#中的xml文件.首先,我打开文件(本地)...并使用foreach获取值,如下所示:
XmlNodeList titles = xmlDoc.GetElementsByTagName("title");
foreach (XmlNode title in titles)
{
rowNews = new ListViewItem();
rowNews.Text = (title.ChildNodes[0].Value);
listView1.Items.Add(rowNews);
}
Run Code Online (Sandbox Code Playgroud)
问题是,我的文件中有很多名为title的rss标签,我只想阅读里面的内容<entry></entry>吗?
该程序使用itemListener进行温度转换
outputValue是受保护的double
outputString也受到保护
输出是一个JTextField
和输出类型是受保护的char
public void itemStateChanged(ItemEvent e) {
inputValue = Double.parseDouble(textField.getText());
//the input value is converted to the outputValue based on the outputType
outputString = String.valueOf(outputValue); //set output value to string
outputString = String.format(" %0.2f", outputValue); //format to .00
output.setText( outputString + (char) 0x00B0 + outputType);}
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,我得到:
Exception in thread "AWT-EventQueue-0" java.util.MissingFormatWidthException: 0.2f,
Run Code Online (Sandbox Code Playgroud)
有很多(未知来源).
在我的XML输入文件中,我有以下行:
<change beforeWhat="Literacy rate in L2: 50\%–75\%. Informally used" />
Run Code Online (Sandbox Code Playgroud)
在50\%和之间的那个字符75\%不是连字符而是短划线.
当我在Python中使用expat解析此XML文件时:
postFixesDoc = minidom.parse('postFixes.xml')
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ExpatError: not well-formed (invalid token): line 35, column 99
Run Code Online (Sandbox Code Playgroud)
其中35是我在XML输入文件中引用的行,而99是%在en dash之前的右列.
如果我用短划线替换–,那么错误就会消失,一切正常.所以我有一个解决方法.但我不明白为什么会这样.
我读过的关于这个问题的内容 - 例如Python的minidom,xml和非法的unicode字符 - 告诉我,一些UTF-8中合法的字符在XML中是不合法的,并指出了XML的第2.2节法律字符范围的规范.但Char的定义包括范围#x20-#xD7FF.并且#x2013该范围内的明显下降.所以有什么问题?
FWIW,XML输入文件以UTF-8声明开头,
<?xml version="1.0" encoding="utf8"?>
Run Code Online (Sandbox Code Playgroud)
我使用十六进制编辑器来验证短划线由字符序列E2 80 93表示,这是用于短划线的正确UTF-8编码.那么为什么不会外籍人士接受呢?这是外籍人士的错误吗?
window.onload = function() {
document.getElementById('clickMe').onclick = runTheExample;
}
function runTheExample() {
alert('running the example');
}
Run Code Online (Sandbox Code Playgroud)
对于id = clickMe的html输入按钮,这是onclick事件的简单事件处理程序.
在第2行,为什么函数调用runTheExample不会紧跟()?我认为要调用一个函数,你必须在开/关括号中传递它所需的任何变量/对象,如果函数不期望任何东西,你必须仍然包括开括号和右括号runTheExample().
我有以下xml.我需要使用xpath查询获取根节点的所有子节点.我怎么写xpath表达式?
<rootElement>
<rootElementOne xmlns="http://some.com">
<rootElementTwo>
<Id>12345</balId>
<name>Name1</businessName>
</rootElementTwo>
</rootElementOne>
<rootElementOne xmlns="http://some.com">
<rootElementTwo>
<Id>6789</balId>
<name>Name2</businessName>
</rootElementTwo>
</rootElementOne>
</rootElement>
Run Code Online (Sandbox Code Playgroud)
表达式应返回以下结果:
<rootElementOne xmlns="http://some.com">
<rootElementTwo>
<Id>12345</balId>
<name>Name1</businessName>
</rootElementTwo>
</rootElementOne>
<rootElementOne xmlns="http://some.com">
<rootElementTwo>
<Id>6789</balId>
<name>Name2</businessName>
</rootElementTwo>
</rootElementOne>
Run Code Online (Sandbox Code Playgroud)
我尝试使用rootElement/rootElementOne/*但没有结果.
谢谢!
给出以下xml:
<inventory>
<item name="..." sku="123"/>
<item name="..." sku="not available"/>
<catalog vendor="...">
<product id="--not available--"/>
<product id="345"/>
</catalog
</inventory>
Run Code Online (Sandbox Code Playgroud)
我想替换其中"不可用"的任何属性值(任何地方)'000'.
我在XSLT中尝试了不同的组合(这不是我的强项),当我为每个属性添加特定的XPath表达式时,我能够替换它们.不幸的是,我可能正在处理的XML文档(形成良好的思想)可能具有不同的结构和属性命名约定.
所有重要的是扫描特定属性值(或值模式)并将其替换为特定于问题的默认值.我发现自己只是在Python中破解了一个解决方案(加载文档,迭代DOM并修改符合条件的任何节点中的任何属性.)
但我真的想在XSLT中学习这个解决方案(无论是替换匹配模式的属性值,还是直接字符串比较),如果存在的话.如果你愿意,可以有专业的好奇心.
任何帮助,将不胜感激.关于解释这些XLST/XPath复杂性的源或书的任何建议都会很棒(我只发现了非常简单的例子,没有任何像这样的任意.)
给出以下 xml 片段:
<ns2:Invoice xmlns="http://defaultnamespace.com" xmlns:ns2="http://namespace2.com"
xmlns:ns3="http://namespace3.com">
.........
</ns2:Invoice>
Run Code Online (Sandbox Code Playgroud)
和:
<ns3:Invoice xmlns="http://defaultnamespace.com" xmlns:ns2="http://namespace2.com"
xmlns:ns3="http://namespace3.com">
.........
</ns3:Invoice>
Run Code Online (Sandbox Code Playgroud)
可以使用 xpath 获取与 root ( <Invoice>) 元素关联的命名空间吗?
预期结果如下: 在第一个示例中,根的前缀为“ns2”,因此我期望为“ http://namespace2.com ” 在第二个示例中,根的前缀为“ns3”,因此我期望为“ http ://namespace3.com “
我们知道,全局变量的值可以随时被其他线程修改。但是为什么?.letkotlin 可以防止多线程中的 NPE 呢?例如:
var demo : Demo? = null
demo = Demo()
Thread{
demo?.let {
while (true){
it.run()
Thread.sleep(300)
}
}
}.start()
Thread.sleep(3000)
demo = null
Run Code Online (Sandbox Code Playgroud)
上面的程序中,虽然主线程将变量设置demo为null,但子线程仍能正常执行。
那么,为什么“let”构造中的“it”不能受到其他线程的影响呢?它是对象“演示”的深层副本吗?
清单有
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
Run Code Online (Sandbox Code Playgroud)
应用程序设置,“存储”=修改/删除 SD 卡内容”在运行 2.3.5 的三星平板电脑和运行 2.3.4 的摩托罗拉 Droid 上结果相同。设备不依赖于开发机器。
代码如下:
public class OutputStudentRecords extends StActivity{
SharedPreferences mStudentSettings;
protected Cursor mCursor;
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.create_csv);
String state = Environment.getExternalStorageState();
Toast.makeText(getApplicationContext(),"State is " + state, Toast.LENGTH_LONG).show();
if (!Environment.MEDIA_MOUNTED.equals(state)){
//We can read and write the media
mExternalStorageAvailable = mExternalStorageWriteable = true;
Toast.makeText(getApplicationContext(), "We Can Read And Write ", Toast.LENGTH_LONG).show();
File file = new File(Environment.getExternalStorageDirectory()
+File.separator
+"studentrecords"); //folder name
file.mkdir(); …Run Code Online (Sandbox Code Playgroud) 使用XPATH,我试图从以下内容中获取ISBN号:
<span class="product_info_details">
<b class="">ISBN: </b>1941529429
<b class="">Contributors: </b> (Illustrator)
<b class="">Publisher:</b> Parallax Pr
<b class="">Published:</b> Nov 1 2016
</span>
Run Code Online (Sandbox Code Playgroud)
现在,当我使用:
//span[@class="product_info_details"]/b/following-sibling::text()
Run Code Online (Sandbox Code Playgroud)
我得到输出:
1941529429
(Illustrator)
Parallax Pr
Nov 1 2016
Run Code Online (Sandbox Code Playgroud)
我可以使用什么,以便我得到第一个值(1941529429)作为结果?
xml ×5
xpath ×4
java ×2
android ×1
c# ×1
decimal ×1
encoding ×1
expat-parser ×1
foreach ×1
formatting ×1
javascript ×1
kotlin ×1
opengl ×1
python ×1
syntax ×1
utf-8 ×1
xmlnodelist ×1
xslt ×1