标签: qt-maemo

如何在Qt中使用带有QDomNodeList的foreach?

我是Qt的新手,我每天都在学习新东西.
目前,我正在空闲时间为我的诺基亚N900开发一个小应用程序.
一切都很好,我能够在设备上编译和运行Maemo应用程序.

我刚刚foreach在Qt中了解了这个关键字.(我知道它不是在C++中,所以直到我不小心偶然发现了一个提到它的Qt文档时才考虑它.)
所以,我决定将我那令人烦恼且难以理解的循环改为foreach,但我没有用这个:

QDomNodeList list = doc.lastChild().childNodes().at(1).firstChild().childNodes();
for (int x = 0; x < list.count(); x++)
{
    QDomElement node = list.at(x).toElement();
    // Do something with node
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试的方式:

foreach (QDomElement node, doc.lastChild().childNodes().at(1).firstChild().childNodes())
{
    // Do something with node
}
Run Code Online (Sandbox Code Playgroud)

由于某种原因,上面的代码甚至没有编译.我从编译器得到了神秘的错误消息.

有人可以向我解释如何把它弄好吗?

如果foreach循环不支持QDomNodeList,有没有办法处理支持的XML文件foreach

编辑:

为了澄清,// Do something with node在这种情况下是以下内容:

EveCharacter chr;
chr.setName(node.attribute(EVE_NAME));
chr.setId(node.attribute(EVE_CHARACTER_ID).toInt());
acc->addCharacter(chr);
Run Code Online (Sandbox Code Playgroud)

其中acc是type EveAccount,它将数据存储在a中QList<EveCharacter>.

大写符号是编译时常量字符串.
(我正在为EVE Online API创建一个客户端.这来自接收帐户字符XML并解释它的方法.)

这就是我创建的方式doc:

QDomDocument …
Run Code Online (Sandbox Code Playgroud)

c++ foreach qt qt4 qt-maemo

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

Python + QT + Gstreamer

我正在使用PyQt并尝试从网络摄像头获取视频以在QT小部件中播放.我已经找到了C和Qt的教程,以及python和gtk的教程,但是对于pyQt和gstreamer的这个组合没什么.有人这个有用吗?

这播放视频很好,但在一个单独的窗口中:

self.gcam = gst.parse_launch('v4l2src device=/dev/video0 ! autovideosink')
self.gcam.set_state(gst.STATE_PLAYING)
Run Code Online (Sandbox Code Playgroud)

我需要的是让叠加层工作,以便它显示在我的GUI上的小部件中.谢谢,互联网大师!

好的,所以我已经走得更远了,但仍然需要一些帮助.我实际上是为Maemo编写的,但以下代码在我的linux笔记本电脑上工作正常:

class Vid:
    def __init__(self, windowId):
    self.player = gst.Pipeline("player")
    self.source = gst.element_factory_make("v4l2src", "vsource")
    self.sink = gst.element_factory_make("autovideosink", "outsink")
    self.source.set_property("device", "/dev/video0")
    self.scaler = gst.element_factory_make("videoscale", "vscale")
    self.window_id = None
    self.windowId = windowId

    self.player.add(self.source, self.scaler, self.sink)
    gst.element_link_many(self.source,self.scaler, self.sink)

    bus = self.player.get_bus()
    bus.add_signal_watch()
    bus.enable_sync_message_emission()
    bus.connect("message", self.on_message)
    bus.connect("sync-message::element", self.on_sync_message)

    def on_message(self, bus, message):
    t = message.type
    if t == gst.MESSAGE_EOS:
        self.player.set_state(gst.STATE_NULL)
    elif t == gst.MESSAGE_ERROR:
       err, debug = message.parse_error()
       print "Error: %s" % err, debug
       self.player.set_state(gst.STATE_NULL) …
Run Code Online (Sandbox Code Playgroud)

python maemo gstreamer pyqt4 qt-maemo

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

Qt Creator自动生成的垃圾(文件)的目的是什么,我该如何驯服它们?

我是Qt的新手,我正在使用新的诺基亚Qt SDK测试版,我正在努力在我的空闲时间为我的诺基亚N900开发一个小应用程序.
幸运的是,我能够正确设置所有内容,并在设备上运行我的应用程序.

我在学校学过C++,所以我觉得它不会那么难.
我使用Qt Creator作为我的IDE,因为它不能与Visual Studio一起使用.

我也希望将我的应用程序移植到Symbian,所以我已经运行了几次模拟器,我也编译Windows以调试最邪恶的错误.(调试器在设备上无法正常工作.)

我来自.NET背景,所以有一些我不理解的东西.

当我点击构建按钮时,Qt Creator会在我的项目目录中生成一堆文件:

  • moc_*.cpp文件 - 我不知道他们的目的.有人能告诉我吗?
  • *.o 文件 - 我认为这些是目标代码
  • *.rss 文件 - 我不知道他们的目的,但他们肯定与RSS没有任何关系
  • Makefile而且Makefile.Debug- 我不知道
  • AppName(没有扩展名) - Maemo的可执行文件,以及AppName.sis- Symbian的可执行文件,我想?
  • AppName.loc - 我不知道
  • AppName_installer.pkg而且AppName_template.pkg- 我不知道
  • qrc_Resources.cpp - 我想这是我的Qt资源

(AppName相关申请的名称在哪里)

我注意到这些文件可以安全删除,Qt Creator只是重新生成它们.
问题是它们污染了我的源目录.特别是因为我使用版本控制,如果它们可以重新生成,则将它们上传到SVN是没有意义的.

那么,有人可以告诉我这些文件的确切目的是什么,以及如何让Qt Creator将它们放入另一个目录?

编辑:

似乎我从这个问题的答案中学到了比我想象的更多.:)
非常感谢帮助我的每个人.我给了每个人一个upvote,因为我可以从每个答案中学到新东西.

实际上,Rob推荐的似乎是最方便的解决方案,但我接受了Kotti的回答,因为他为Qt的构建机制如何运作提供了最好的解释.

解决方案:

似乎Maemo和Symbian工具链都没有支持阴影构建,所以我在我的项目文件中使用这些来解决这种情况:

DESTDIR = ./NoSVN
OBJECTS_DIR = ./NoSVN
MOC_DIR = ./NoSVN
RCC_DIR = ./NoSVN
UI_HEADERS_DIR = ./NoSVN
Run Code Online (Sandbox Code Playgroud)

c++ qt qt4 qt-creator qt-maemo

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

如何在Windows上启动Qt开发,但是针对Maemo 5?

我最近听说过Qt,并了解了开发的乐趣.顺便说一句,我也买了一台诺基亚N900,我听说它的操作系统Maemo 5非常好地支持Qt,所以我想我会试一试.

我是.NET开发人员,所以我更喜欢在Windows上开发,如果有可能的话,使用Visual Studio.我下载了最新的Qt SDK.我启动了Qt Creator并创建了一个简单的"Qt4 Gui应用程序".它工作正常,但是,我找不到任何可以在任何地方编译Maemo 5的选项.

然后,我下载了Visual Studio插件并试图用它创建一个"Qt应用程序",但是,无论我选择哪种Qt项目类型,单击OK按钮后,对话框都会再次弹出,所以它不能创造任何东西

我还阅读了Maemo 5 SDK,但它似乎只适用于Linux.(Windows的每个演练都是从使用Linux设置虚拟机开始的.)但是,我根本不熟悉Linux,所以我宁愿留在Windows上.

所以我的问题是:是否有可能在Windows上开发时创建将在Maemo 5上运行的Qt应用程序,或者这是不可能的?

提前感谢您的任何答案.

编辑(解决方案):

从我开始这个问题开始,这是一个非常好的开发工具,诺基亚Qt SDK很好地解决了这个问题.它是跨平台的,可用于开发Symbian和Maemo应用程序.对于Maemo工具链,它使用MADDE,这正是答案推荐的工具.(请注意,它不再是技术预览.)

这是关于诺基亚Qt SDK的非常好的介绍视频.

windows qt nokia maemo qt-maemo

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

学习C++时会遇到什么,如果我来自PHP/Java?

我需要学习C++才能学习构建Nokia WRT和/或maemo应用程序.我需要知道我需要/必须学习或关注更多的问题和C++的哪些方面.我想到的一件事是C++没有垃圾收集器.因此,我需要关注变量类型.但是,有没有其他非常重要的我不能忽视它?

php c++ java qt-maemo

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

标签 统计

qt-maemo ×5

c++ ×3

qt ×3

maemo ×2

qt4 ×2

foreach ×1

gstreamer ×1

java ×1

nokia ×1

php ×1

pyqt4 ×1

python ×1

qt-creator ×1

windows ×1