小编Ven*_*emo的帖子

如何获得文件扩展名的Qt图标(QIcon)

我正在开发一个需要显示与不同文件类型相关联的图标的应用程序.
例如,对于.doc扩展,我需要它才能显示Microsoft Word图标.

题:

我怎么能以某种方式使用QT sdk从系统中获得QIcon

谢谢.

user-interface icons qt qt4

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

如何优化基于QGraphicsView的应用程序的性能?

我有一个基于Qt Graphics View框架的应用程序.
这是一个拼图游戏,它基本上将像素图切割成较小的像素图(拼图)并将其显示为QGraphicsItems中的s QGraphicsView.我希望这款应用能够在智能手机和平板电脑上运行.(它已经在诺基亚N900和一些Symbian手机上运行.尚未针对Symbian ^ 3进行优化.)
来源是Gitorious.

该项目继承QGraphicsItemQObject,并有Q_PROPERTY对宏pos()rotation()QGraphicsItem,以实现与Qt的动画框架动画它们.
我对项目执行转换,例如缩放和旋转(后者仅在开发中的多点触控分支中),我也使用QGraphicsDropShadowEffect它们.

我使用a QGLWidget作为视口,QGraphicsView以便为应用程序启用OpenGL加速.

问题在于,尽管采用OpenGL加速,但应用并不流畅.(特别是动画,特别是因为我将旋转变换添加到多点触控分支.)显示的图形项目不多,并且没有3D操作或任何严重的,只有2D绘图.
我根本不是图形专家,所以我不知道为什么这个应用程序运行缓慢.我见过其他比较复杂的游戏比这更顺畅.

秘密是什么?我怎么能优化这个应用程序?

opengl performance qt qt4 qgraphicsview

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

在开发XNA应用程序时,如何避免频繁的int/float/double强制转换?

我正在使用XNA Framework为Windows Phone 7(Mango)制作一个简单的2D游戏.

我做了以下观察:

  • 大多数绘图操作都接受floats
  • SpriteBatch.Draw接受Rectangle使用ints的
  • Math班接受doubleS作为参数,还返回doubles ^

所以我的代码充满了ints,floats和doubles 之间的类型转换.这是一个很多的类型.

有什么方法可以摆脱它们,或者我应该不关心这个?

此外,这些类型转换是否会带来可衡量的性能损失?

.net c# xna windows-phone-7 windows-phone-7.1

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

如何在本机节点模块中维护零拷贝?

我正在为进程内数据库编写一个本机节点模块,该模块具有零复制数据查找功能。我希望我的模块也具有这种能力。换句话说,当我从数据库获取数据时,我希望将数据传递给V8,而不需要复制内存或需要解析某些内容。

我怎样才能做到这一点?

到目前为止,我见过的所有方法都涉及在 JSON 之间来回解析(在这种情况下几乎浪费资源)或实例化 V8 数据结构并将数据复制到其中。

注意:如果您想知道,零复制数据查找意味着(简而言之)数据库引擎在检索数据时不需要复制内存。

c++ v8 node.js node-modules

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

处理不受支持的CSS表达式的标准方法是什么?

CSS标准对不支持的表达式有何看法?浏览器应如何处理?实际的浏览器实现如何处理它们?

我正在实现一个CSS 属性优化器(针对一个缩小器项目),并且我们希望保持CSS后备状态不变。我们的目标是尽可能优化CSS,但其渲染方式应与原始 CSS 完全相同
这就是为什么对我来说至关重要的是要了解这些东西是如何工作的。

简单属性

对于简单的属性,这确实很容易。
假设我们有这个:

div {
    color: #f00;
    color: rgba(1,2,3,.4);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果浏览器不支持,rgba则第一个声明将#f00获胜。毫无疑问。

速记

但是,它如何与速记属性一起使用?
这是一些代码:

div {
    background: #f00;
    background: rgba(1,2,3,.4);
}
Run Code Online (Sandbox Code Playgroud)

如果浏览器不了解,它将如何呈现rgba呢?如您所知,的语法background是:background: <color> <image> <repeat> <attachment> <position>;并且这样的速记声明覆盖了它之前的5个细粒度声明中的任何一个;因此,困难在于浏览器尝试将5个细粒度属性之一分配给未知令牌。我有几种可能性:

  • 浏览器认为它根本不理解后一个声明,并将其完全删除
  • 浏览器认为rgba(...)代表background-image即使它不知道如何处理它,清除了以前background-color以及
  • 浏览器认为rgba(...)代表,background-color并且由于无法理解,因此#f00转而使用代替

让我们变得更加有趣,说我们有这个:

div {
    background: #fff url(...) no-repeat;
    background: rgba(1,2,3,.4) linear-gradient(...) repeat-y;
}
Run Code Online (Sandbox Code Playgroud)

浏览器如何解释此CSS代码段,...

  • 如果浏览器不懂rgba? …

css

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

无法使用FormsAuthentication.SignOut()从ASP.NET MVC应用程序注销

我试图在ASP.NET MVC中实现Logout功能.

我为我的项目使用Forms身份验证.

这是我的退出代码:

FormsAuthentication.SignOut();
Response.Cookies.Clear();
FormsAuthenticationTicket ticket = 
    new FormsAuthenticationTicket(
        1,
        FormsAuthentication.FormsCookieName,
        DateTime.Today.AddYears(-1),
        DateTime.Today.AddYears(-2),
        true,
        string.Empty);

Response.Cookies[FormsAuthentication.FormsCookieName].Value = 
            FormsAuthentication.Encrypt(ticket); 
Response.Cookies[FormsAuthentication.FormsCookieName].Expires = 
            DateTime.Today.AddYears(-2);

return Redirect("LogOn");
Run Code Online (Sandbox Code Playgroud)

此代码将用户重定向到登录屏幕.但是,如果我通过在地址栏中指定名称来调用操作方法(或从地址栏下拉列表中选择上一个链接),我仍然可以在不登录的情况下访问安全页面.

有人可以帮我解决这个问题吗?

.net c# asp.net asp.net-mvc forms-authentication

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

您将在存储库类(数据访问层)的单元测试中添加什么?

我想为我的数据访问层编写单元测试,以确保一切正常.问题是,我应该在测试中加入什么样的东西?

DAL是一个静态Repository类,它隐藏了底层(Fluent NHibernate)并通过一个公开东西给公众IQueryable.

我想过

  • CRUD(创建/检索/更新/删除)操作
  • 交易

关于DAL还有什么值得测试的吗?
提前感谢您的回答!

.net nhibernate unit-testing data-access-layer iqueryable

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

如何使用带UTF-16的ICU?

我正在研究在本机Node.js模块中使用ICU进行Unicode字符串处理,因为在我看来v8::String(根据这些文档)没有用于此目的的C++ API.

据我所知,V8需要UTF-16 ExternalStringResource和其他API,所以我想使用ICU进行UTF-16处理.
我特别需要:

  • 迭代UTF-16字符串的字符(不仅仅是16位代码单元)
  • 告诉UTF-16字符串包含的字符数(不仅仅是16位代码单元)

所以我查看了ICU文档并找到了UnicodeStringCharacterIterator类.但是,UnicodeString没有fromUTF16方法,只有fromUTF8fromUTF32.

我不确定的另一件事是,UnicodeString构造函数是否复制了我给它的数据?我非常喜欢使用零拷贝方法,我只使用不可变对象,因此它不应该执行任何复制操作,只需使用我指向它的缓冲区.

我也不确定我是否可以使用UCharIterator(假设我可以以某种方式UChar*从我的UTF-16字符串转换).

所以我的问题是:我如何将ICU用于上述目的?

提前感谢您的回答!

c++ unicode utf-16 icu node.js

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

如何对嵌入代码进行单元测试?

我正在为C++中基于Cortex-M4的微控制器开发软件.我有很多代码高度依赖于机器的代码(驱动程序等).我有更高级别的代码,它通过直接使用驱动程序密切依赖于低级代码.示例:低级别部分是例如.UART驱动程序,它是非常特定于硬件的,而高级部分是基于UART的通信协议.(该软件在"裸机"上运行,即下面没有操作系统.)

此代码目前紧密耦合,因此无法进行单元测试.
我想让它变得可测试.

所以我想我会创建一个低级部分的抽象,并使高级部分仅依赖于抽象.然后,我可以创建抽象的模拟,这些模拟将由单元测试使用,并且可以在微控制器上运行.

  • 这是正确的方法吗?
  • 我怎样才能创建这样的抽象?我发现的
    大多数资源 强烈反对virtual在嵌入式系统中使用继承和函数.还有其他什么方法?

总而言之,我想创建一个硬件抽象层(HAL),但我问的是如何做到这一点?我应该virtual在C++中使用继承,还是有另一种更好的方法?

c++ embedded unit-testing abstraction

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

我该如何实现我的C++异常?

假设我有一个C++库.在某些情况下,库会抛出异常.我想让这个库的用户能够捕获这些异常并告诉出现了什么问题.处理它的最佳方法是什么?我想出了以下可能的解决方案:

  1. 只需将标准异常类与自定义错误消息一起使用即可.然而,这会让抓住异常的人告诉错误是令人讨厌的.
  2. 创建一个子类std::exception并抛出它.添加某种错误代码(可能是枚举?还是宏?),以便用户可以检查出错的地方.
  3. 创建多个异常子类:每个异常子类可以抛出一个异常.这似乎是一个很好的想法,但我认为为每个可能的错误创建一个子类太过分了.

我无法真正决定.什么是正确的方法?

c++ exception-handling exception shared-libraries

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