小编Lar*_*rsH的帖子

OPENGL用户界面编程

我正在开发一个图形应用程序来呈现数据(不是游戏,而是真正的主力应用程序).它需要跨平台,所以我选择了:

  • 蟒蛇
  • openGL(我需要3D,混合,纹理等)
  • pyopengl
  • wx/pywx - 窗口,对话等

最后一个组件--WX - 提出了一个问题.我可以把一个非常好看的应用程序放在一起(原型看起来很光滑) - 但是当我需要与用户交互以提问,获取输入时,我必须使用WX.它使应用程序看起来不一致,传统的UI与传统的对话框和组合和文本输入在全屏幕3D应用程序之上,混合,平滑运动,纹理等.

有没有人使用OpenGL和python开发GUI?你能与我分享你使用的工具包和/或技巧吗?我需要组合,文本输入,按钮,收音机,选项按钮,树视图.

有一些工具包,但它们要么是不完整的,要么是旧的并且没有维护.一个很好的例子是pyUI(http://pyui.sourceforge.net/) - 看上去很光滑,但未触及多年.

python opengl user-interface

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

在C#中读取XML

我正在使用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>吗?

c# xml foreach xmlnodelist getelementsbytagname

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

如何在一个字符串中输出一个double到2个decmial位置?

该程序使用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)

有很多(未知来源).

java formatting decimal

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

为什么expat拒绝短划线字符无效?

在我的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之前的右列.

如果我用短划线替换&#x2013;,那么错误就会消失,一切正常.所以我有一个解决方法.但我不明白为什么会这样.

我读过的关于这个问题的内容 - 例如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编码.那么为什么不会外籍人士接受呢?这是外籍人士的错误吗?

xml encoding utf-8 expat-parser

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

为什么javascript函数调用函数名后不包含'()'?

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().

javascript syntax javascript-events

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

使用xpath获取子节点?

我有以下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/*但没有结果.

谢谢!

java xml xpath

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

XSLT - 如何更改其值包含给定子字符串的任何属性的值

给出以下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 xslt xpath

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

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

xml xpath

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

为什么.let可以防止多线程中的nullPointException?

我们知道,全局变量的值可以随时被其他线程修改。但是为什么?.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”不能受到其他线程的影响呢?它是对象“演示”的深层副本吗?

kotlin

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

getExternalStorageState() 显示“已安装”但仍无法创建文件夹

清单有

<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)

android android-sdcard

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

我怎样才能只选择下面的第一个兄弟姐妹?

使用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)作为结果?

xpath

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