问题标签 [qtruby]

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 投票
3 回答
1005 浏览

ruby - 如何在 Windows 上构建 Qt Ruby/ruby-KDE/Qt 绑定?

有谁知道我在哪里可以查看http://techbase.kde.org/Development/Languages/Ruby的最新源代码 以及如何在 Windows 上构建它?

我想针对 Qt 4.8 构建最新版本

0 投票
1 回答
108 浏览

ruby - 无法在 QtRuby 中的不同表上显示从同一类继承的多个表模型

我一直在关注这篇文章以在 QtRuby 中显示 ActiveRecord 数据。我已经BoatTableModel从那里复制了课程(其余部分使用了我自己的代码)。在文章中,BoatTableModel定义为仅支持Boat模型,但除了列定义之外,代码非常通用。所以,我改变了它,而不是在那里定义列,我让它从一个column_names方法中获取列,并在每个模型的子类中定义这些方法。

这是我的代码:

现在,当我展示一个模型时(不管是哪个模型)——一切都很好。但是,当我显示两个模型时,每个模型都是自己的Qt::TableView- 只显示第一个模型,而另一个表视图是空白的。

我尝试了不同的排序,显示数据的表始终是它Qt::TableView首先创建的表——创建 Qt 模型的顺序无关紧要。此外,当我为第一个表创建模型对象,但实际上并未为其设置model属性时,第二个表显示它的数据。

我还尝试在两个不同的表格视图中显示相同的模型两次——它起作用了——一瞬间,然后第二个视图的数据消失了。

我还尝试复制粘贴QtArModel,更改它的名称,并使其中一个模型继承自副本。这确实有效 - 但这显然是一个巨大的代码重复,所以我真的很想避免这种情况。

现在,我的猜测是 QtArModel 中的某些东西被定义为类成员而不是实例成员,这使得两个模型实例共享它们不应该共享的东西。它必须在 QtArModel 中——因为如果它在继承树中更高,那么当我复制QtArModel. QtArModel但是,我在类范围而不是实例范围内找不到任何东西。

我错过了什么?

0 投票
2 回答
378 浏览

ruby - 如何从用 qt4 编写的 ruby​​ 应用程序创建 debian 包 (*.deb)?

我发现了很多教程如何使用 Ruby 和 Qt 构建应用程序,但我不知道其他人将如何运行它!我正在使用带有 rvm 的 Ubuntu 11.10、ruby 1.9.2 和: rbqtapi -v 输出“使用 Qt-4.7.4 的 QtRuby 2.0.5”

PS 我不知道如何构建 *.deb,它将是我的第一个桌面应用程序,而不是 Web。

0 投票
1 回答
326 浏览

ruby - 在 qtruby 中处理事件

我尝试使用 Ruby 和 QtDesigner 进行 Qt,但我不明白如何处理事件。我阅读并尝试了信号和插槽,但我没有看到我如何自定义行为,例如,如果我想在单击按钮时触发动作。

0 投票
1 回答
993 浏览

ruby - Qt Model/View programming examples and tutorials in Ruby

I'm learning about Qt Model/View with Ruby and I'm trying run the following code

When I run the script what it shows is a list window with three rows empty. What am I doing wrong? On the other hands, I find it hard to learn to model/view programming with ruby due to the poor documentation (All is C++) anyone know if there are tutorials or something?

0 投票
1 回答
3653 浏览

qt - QAbstractItemModel 相对于 QStandardItemModel 的优势是什么?

我想使用模型存储自定义数据。为此,对于选择哪个项目模型进行子类化有点困惑。我需要澄清一下,哪个是子类化的最佳模型?而且我还需要 QAbstractItemModel 优于 QStandardItemModel 的优势吗?

谢谢!

0 投票
0 回答
144 浏览

ruby - QtRuby 应用程序可以部署在 Apple 的 App Store 上吗?

我正在争论我应该使用 MacRuby 还是 QtRuby。但是,我绝对想在 App Store 上部署我的应用程序。如果 QtRuby 无法在 App Store 上部署,我将不得不使用 MacRuby。

0 投票
0 回答
286 浏览

ruby - QtRuby 绘画在 Windows 但不是 Linux 上崩溃

我是 QT 新手,在尝试创建自定义绘制事件时在 Windows 7 x64 上发生崩溃。我正在使用 Ruby 1.9.3p125 和 qtbindings-4.8.3.0-x86-mingw32。在我的工作机器 Redhat Linux 上使用 Ruby 1.9.2p180 和 qtbindings-4.6.3.4 时不会出现此崩溃

我最初在遵循“C++ Gui Programming with QT 4”(移植到 Ruby)中的 IconEditor 示例时遇到了这个问题,但在下面的示例中简化了这个问题。

此示例代码创建了一个计时器,用于在子类 QWidget 中重复绘制一条简单的线。在 Windows 上,在 Ruby 给出分段违规之前,paintEvent 会触发约 440 次。这是代码:

这是回溯:

编辑:: 没有什么比回答你自己的问题...

paintEvent 类需要包含“painter.end”语句。我找不到这方面的文档,但它在 qtbindings 包含的示例中,我只是错过了它。毫无疑问,这会调用 QPainter 对象析构函数来防止内存泄漏导致程序崩溃。

这是更正后的代码:

0 投票
2 回答
604 浏览

ruby - 为什么会出现分段错误 (qtruby)?

在访问类变量(s 数组)时,我一直遇到分段错误问题Qt::Action,我一直在尝试将其缩减为复制该问题的最小代码示例:

上面的代码输出:

似乎有必要使用子菜单来触发这个问题 - 至少将操作添加到托盘菜单本身运行了很长一段时间没有问题(我离开它的时间是得到它的 10 倍以上上面代码的错误)。

红宝石版本:ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]

Qt版本:4.8.1

绑定版本:qtbindings (4.8.3.0)

Linux 版本:Ubuntu 12.04

另一个奇怪的行为是puts调用的输出有时会立即显示在控制台中,有时它只会在我将鼠标悬停在托盘图标上时打印。

我什至不知道从哪里开始跟踪这个问题,所以非常感谢您提供的任何输入。

更新:我已经离开了一段时间,因为我无法再进一步了。我试图重新开始,但我仍然遇到同样的问题。我对这个问题进行了更深入的研究,因为它说'missing_method',所以我首先打印了这个类,以确保我确实在查看 Qt::Action(我是),然后根据哪些方法可用actions[0].methods.

.methods输出:

在这种情况下,我试图在actions[0].enabled = true发生分段错误时执行此操作,据我所知,这是在输出中(从底部算起的第 6 行,enabled=)。我也试过了setEnabled(true)set_enabled(true)几乎所有我能想到的。

即使调用inspect动作对象也会导致分段错误,尽管在最初将动作放入数组的循环中执行此操作很好。我真的不明白这是哪里出了问题。

编辑:为了回应使用的建议,QTimer我已经尝试过这个,但我仍然遇到同样的问题。该代码目前比上面列出的要复杂一些,所以我将在这里编写一些快速的伪代码来说明流程:

对 Manager.new 的调用初始化该对象,最后调用具有状态更改的侦听器,这反过来又调用访问数组的updateProc 。actions在这个阶段这应该都在同一个线程中,除了实际创建Qt::Action. 我已经删除了 Rufus 调度并将其替换为QTimer,但它还远远不足以解决这个问题。

0 投票
0 回答
142 浏览

ruby - QGraphicsScene 上的 qt-ruby 和自定义小部件

我正在使用 qt-ruby,我想使用 addWidget() 向 QGraphicsScene 添加一个小部件。作为回报,我得到一个 QGraphicsProxyWidget。

稍后,当用户单击 GraphicsScene 时,使用 itemAt() 查找被单击的 Widget。但是 itemAt() 返回一个 QGraphicsItem。

如何将 QGraphicsProxyWidget 与 QGraphicsItem 匹配?

我使用 qgraphicsitem_cast 在 C++ 中解决了这个问题,但这在 qt-ruby 中似乎不可用。

请帮忙!