小编rav*_*agw的帖子

用于C++实时应用程序的GUI框架

C++应用程序比.NET具有更高的性能,因此许多应用程序都是用C++编写的.

但是原始的C++没有GUI支持,因此Qt类似框架可以帮助开发人员开发桌面GUI应用程序但是大多数应用程序也不是QT应用程序.

对于像Adobe Photoshop这样的大型跨平台C++应用程序,最常用的GUI框架/库是什么?Qt是否适用于大型应用?如果没有,使用这些库比Qt等更常见的跨平台库有什么好处?

c++ qt mfc

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

如何将隐藏画布中的内容复制到可见画布?

将画布从缓冲区画布复制到页面上的画布时遇到一些困难。到目前为止,我已经构建了一个渲染对象、一个关卡对象,并且我有了主游戏循环(目前只是一个启动函数)。

我可以很好地写入渲染对象中的缓冲区画布(如果我添加 document.body.append() 语句,画布会成功地将必要的内容追加到文档中),但我无法从缓冲区画布复制到我的主要画布。请参阅下面的我的代码片段:

function Renderer(bufferWidth, bufferHeight) {
    var c=document.createElement('canvas');
    var ctx=c.getContext('2d');
    c.width=bufferWidth;
    c.height=bufferHeight;

    this.getBufferContext = function() { return ctx; };
    this.getBufferElement = function() { return c; };

    this.drawToCanvas = function(canvasCtx) { 
        canvasCtx.drawImage(c,0,0);
    };
}


var c = document.getElementById('mycanvas');
var ctx = c.getContext('2d');

var render = new Renderer(c.width, c.height);   
var level1 = new Level('images/imagequality.png');

level1.Draw(render.getBufferContext());
render.drawToCanvas(ctx);
Run Code Online (Sandbox Code Playgroud)

请注意,渲染器位于单独的文件中,并使用 HTML 页面中的脚本标记加载。

如前所述,drawToCanvas() 函数似乎无法成功地将数据从一个画布复制到另一个画布。附加我的源画布确认它包含预期的数据。

编辑:我在下面列出了我的级别代码。

function Level(mapname) {
    var map=new Image();
    map.src=mapname;

    this.Draw = function(renderer) {
        map.onload = function() { renderer.drawImage(map,0,0); };
    }; …
Run Code Online (Sandbox Code Playgroud)

html javascript canvas

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

C#中的有效存储库 - 何处放置方法?

我正在尝试首次使用Repository模式构建一个新的应用程序,我对使用Repository有点困惑.假设我有以下类:

public class Ticket
{

}
public class User
{
   public List<Ticket>AssignedTickets { get; set; }
}
public class Group
{
   public List<User> GroupMembers { get;set; }
   public List<Ticket> GroupAssignedTickets { get;set; }
}
Run Code Online (Sandbox Code Playgroud)

我需要一种方法,可以通过从数据库中提取数据来填充这些集合.

我很困惑,我应该把这些方法放在哪个相关的Repository类中.我应该设计我的存储库,以便返回类型T的所有内容都在T类型的存储库中进行吗?

public class TicketRepository
{
   public List<Ticket> GetTicketsForGroup(Group g) { }
   public List<Ticket> GetTicketsForUser(User u) { }
}
public class UserRepository
{
  public List<User> GetMembersForGroup(Group g) { }
}
Run Code Online (Sandbox Code Playgroud)

我在这里看到的明显缺点是我需要开始实例化大量的存储库.如果我的用户还分配了窗口小部件,窗口小部件和小部件怎么办?当我填充用户时,我需要实例化一个WidgetRepository,一个FidgetRepository和一个LidgetRepository来填充单个用户.

或者,我是否构建了我的存储库,以便将基于类型T的所有请求集中到T类型的存储库中,如下所示?

public class GroupRepository
{
    public List<Ticket> GetTickets(Group g) { }
    public List<User> …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns repository

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

标签 统计

c# ×1

c++ ×1

canvas ×1

design-patterns ×1

html ×1

javascript ×1

mfc ×1

qt ×1

repository ×1