问题标签 [qt4dotnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1087 浏览

qt - Qt Jambi(Qt4Dotnet):区分插槽中的信号发射器

我是 Qt 的新手,陷入了信号/插槽机制。我有一个带有许多工具按钮的工具栏,每个按钮都与一些小部件相关联。任务是在单击工具按钮时显示适当的小部件。我想编写一个处理关联的插槽,但我不知道如何区分哪个按钮触发了信号。似乎QToolButton的clickedtoggled信号仅接受无参数插槽并且不存储有关其发射器的信息。我可以继承 QtoolButton并引发一个 CLR 事件,其中包含有关每次单击切换信号发射的事件发送者的信息,但应该有更简单的方法来做我想做的事。你能帮助我吗?

0 投票
1 回答
660 浏览

qt - Mac OS X 上的 Qt4Dotnet

我正在使用Qt4Dotnet 项目来移植最初用 C# 在 Linux 和 Mac 上编写的应用程序。移植到 Linux 并没有花费太多精力并且工作正常。但是 Mac (10.4 Tiger) 有点固执。

问题是:当我尝试启动我的应用程序时,它会引发异常。com.trolltech.qt.QtJambi_LibraryInitializer无法找到所有必要的库的异常状态。QtJambi 库初始化程序使用java.library.pathVM 环境变量。此变量包括当前工作目录。我将所有必要的库放在一个工作目录中。当我尝试从 MonoDevelop IDE 运行应用程序时,初始化程序能够加载一个库,但其他库“丢失”:

An exception was thrown by the type initializer for com.trolltech.qt.QtJambi_LibraryInitializer ---> java.lang.RuntimeException: Loading library failed, progress so far: No 'qtjambi-deployment.xml' found in classpath, loading libraries via 'java.library.path' Loading library: 'libQtCore.4.dylib'... - using 'java.library.path' - ok, path was: /Users/chin/test/bin/Debug/libQtCore.4.dylib Loading library: 'libqtjambi.jnilib'... - using 'java.library.path'

两者libQtCore.4.dyliblibqtjambi.jnilib在同一个目录中。当我尝试从命令提示符运行它时,初始化程序甚至无法加载libQtCore.4.dylib.

我正在使用 Qt4Dotnet v4.5.0(目前是最新的)和 QtJambi v4.5.2 库。这可能是问题的根源,但我既无法自己编译 Qt4Dotnet v4.5.2,也无法找到 QtJambi v4.5.0 库。Project 的页面指出,为了与 Mono 框架兼容,应该对 QtJambi 的源代码应用某种补丁,但是这个补丁还没有发布。如果没有这个补丁,应用程序会以一种奇怪的方式崩溃(除了库查找错误)。

我必须注意,原始 QtJambi 完美地加载了所有必要的库,因此可能是用于将 QtJambi 转换为 .Net 库的 IKVM 编译器的问题。

有什么建议可以解决这个问题吗?

0 投票
2 回答
1161 浏览

qt - QT 从场景中识别所选项目

我一直在创建一个 QT 应用程序,但遇到了一个问题。我从 QGraphicsScene 创建了自己的自定义场景类,从那里我将汽车、公共汽车等项目添加到屏幕上。

正如您从上面的代码中看到的那样,我有一个从 QGraphicsPixmapItem 派生的 DiagramItem 类,用于向场景添加不同的项目。

我想在这里实现的是,当我从场景中选择我的项目(汽车或公共汽车)时,我想知道选择了汽车或公共汽车或卡车的车辆。我不知道该怎么做。谁能帮我 。我从现场得到这样的选定项目。

void MainWindow::itemSelected(QGraphicsItem *item) // 从场景发送的信号。{

// 想知道 'ItemSelect' 是汽车或公共汽车或任何其他车辆

}

0 投票
0 回答
1132 浏览

c++ - C#和C++之间的进程间通信(使用QT4.8)

我在通过命名管道通信在 c# 和 C++ (QT) 应用程序之间传递数据时遇到问题。C# 客户端应用程序连接到 C++ 中的 NamedPipe 服务器,但在服务器上未正确解析消息。例如,我正在发送短变量 = 2 的值,并且 c++ 代码将字节数组解析为无符号整数,但服务器中的值始终为零。你能告诉我我做错了什么吗?

客户端和服务器代码:

使用 QT 库的 C++ 中的 NamedPipe 服务器代码

命名管道客户端 (C#)