問題タブ [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.
ruby - How to build Qt Ruby/ruby-KDE/Qt Bindings on Windows?
Does anyone know where I can check out the latest source code of http://techbase.kde.org/Development/Languages/Ruby and how I can build it on Windows?
I would like to build the latest version against Qt 4.8
ruby - QtRubyの異なるテーブルで同じクラスから継承する複数のテーブルモデルを表示することはできません
私はこの記事に従って、QtRubyでActiveRecordデータを表示しています。そこからクラスをコピーしましたBoatTableModel
(残りは自分のコードを使用しました)。この記事でBoatTableModel
は、はモデルのみをサポートするように定義されてBoat
いますが、列の定義を除いて、コードは非常に一般的です。そこで、列を定義する代わりに、メソッドから列を取得し、column_names
各モデルのサブクラスでそのメソッドを定義するように変更しました。
これが私のコードです:
さて、1つのモデルを表示すると(どちらでも構いません)、すべてが正常に機能します。ただし、両方のモデルを表示すると、それぞれが独自のモデルになりQt::TableView
ます。最初のモデルのみが表示され、もう一方のテーブルビューは空白になります。
私は別の順序を試しましたが、そのデータを表示するテーブルは常にQt::TableView
最初に作成されたものです-Qtモデルを作成する順序は重要ではありません。また、最初のテーブルのモデルオブジェクトを作成したが、実際にはそのmodel
プロパティを設定していない場合、2番目のテーブルにはそのデータが表示されます。
また、同じモデルを2つの異なるテーブルビューで2回表示しようとしましたが、それは1秒間機能しましたが、2番目のビューのデータが消えました。
また、コピーして貼り付け、QtArModel
名前を変更して、モデルの1つをコピーから継承させようとしました。それはうまくいきました-しかし、それは明らかに巨大なコードの重複なので、私はそれを本当に避けたいと思います。
さて、私の推測では、QtArModelの何かがインスタンスメンバーではなくクラスメンバーとして定義されており、両方のモデルインスタンスが共有すべきではないものを共有しています。QtArModelにある必要があります-継承ツリーの上位にある場合、複製したときに問題が残っていたためですQtArModel
。QtArModel
ただし、インスタンススコープではなくクラススコープのものは見つかりません。
私は何が欠けていますか?
ruby - qt4 で書かれた ruby アプリケーションから debian パッケージ (*.deb) を作成するにはどうすればよいですか?
Ruby と Qt を使用してアプリケーションを構築する方法についてのチュートリアルをたくさん見つけましたが、他の人がどのようにそれを実行できるのかわかりません! Ubuntu 11.10、ruby 1.9.2、rvm を使用しています。rbqtapi -v output "QtRuby 2.0.5 using Qt-4.7.4"
PS *.deb のビルド方法がわかりません。Web ではなく、初めてのデスクトップ アプリになります。
ruby - qtruby でイベントを処理する
Ruby と QtDesigner で Qt を試していますが、イベントの処理方法がわかりません。シグナルとスロットを読んで試しましたが、たとえばボタンをクリックしたときにアクションをトリガーしたい場合など、動作をカスタマイズする方法がわかりません。
ruby - RubyでのQtモデル/ビュープログラミングの例とチュートリアル
RubyでQtモデル/ビューについて学び、次のコードを実行しようとしています
スクリプトを実行すると、3行が空のリストウィンドウが表示されます。私は何が間違っているのですか?一方、ドキュメントが貧弱なため(すべてC ++)、rubyを使用してプログラミングをモデル化/表示する方法を学ぶのは難しいと思います。チュートリアルなどがあるかどうかは誰にもわかりません。
qt - QStandardItemModel に対する QAbstractItemModel の利点は何ですか?
モデルを使用してカスタム データを保存したい。そのため、サブクラス化のためにどのアイテム モデルを選択するかについて少し混乱しています。サブクラス化に最適なモデルはどれですか? また、 QStandardItemModel よりも QAbstractItemModel の利点が必要ですか?
ありがとう!
ruby - QtRuby アプリケーションを Apple の App Store にデプロイできますか?
MacRuby と QtRuby のどちらを使用するかを検討しています。ただし、アプリを App Store にデプロイしたいのは間違いありません。QtRuby を App Store にデプロイできない場合は、MacRuby を使用する必要があります。
ruby - QtRubyのペイントがWindowsではクラッシュするがLinuxではクラッシュしない
QTを初めて使用し、カスタムペイントイベントを作成しようとすると、Windows7x64でクラッシュします。Ruby1.9.3p125とqtbindings-4.8.3.0-x86-mingw32を使用しています。このクラッシュは、私の仕事用マシン、Ruby1.9.2p180およびqtbindings-4.6.3.4を使用するRedhatLinuxでは表示されません。
「QT4を使用したC++GUIプログラミング」(Rubyに移植)のIconEditorの例に従うと、最初はこの問題に遭遇しましたが、以下の例では問題を単純化しています。
このサンプルコードは、サブクラス化されたQWidgetに単純な線を繰り返し描画するタイマーを作成します。Windowsでは、Rubyがセグメンテーション違反を出す前にpaintEventが約440回発生します。コードは次のとおりです。
バックトレースは次のとおりです。
編集:: あなた自身の質問に答えるようなものはありません...
paintEventクラスには、「painter.end」ステートメントを含める必要があります。これに関するドキュメントは見つかりませんが、qtbindingsに含まれている例に含まれているため、見逃してしまいました。間違いなく、これはQPainterオブジェクトデストラクタを呼び出して、メモリリークによるプログラムのクラッシュを防ぎます。
修正されたコードは次のとおりです。
ruby - セグメンテーション違反 (qtruby) が発生するのはなぜですか?
クラス変数 ( Qt::Action
s の配列) にアクセスするときにセグメンテーション違反の問題が発生しており、問題を再現する最小限のコード例にまで絞り込もうとしています。
上記のコードは次を出力します。
この問題を引き起こすには、サブメニューを使用する必要があるようです - 少なくとも、トレイ メニュー自体にアクションを追加することは、問題なくかなりの時間実行されます (取得するのにかかった時間の 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
もう 1 つの奇妙な動作は、puts
呼び出しからの出力がすぐにコンソールに表示されることもあれば、トレイ アイコンにマウスを合わせると印刷されることもあります。
これを追跡することになると、どこから始めればよいかさえわかりません。
更新: これ以上先に進むことができなかったので、しばらくこれを残しました。これで最初からやり直そうとしましたが、まだ同じ問題に遭遇しています。私は問題をもう少し深く掘り下げました。「missing_method」と書かれていたので、Qt::Action (I am) を確実に見ていることを確認するためにクラスを印刷することから始めました。actions[0].methods
.
.methods
出力:
actions[0].enabled = true
この場合、私が理解している限り、出力にあるセグメンテーション違反が発生したときに実行しようとしていました (下から 6 行目enabled=
)。私も試してみsetEnabled(true)
ましset_enabled(true)
た。
アクション オブジェクトを呼び出しinspect
てもセグメンテーション違反が発生しますが、最初にアクションを配列に配置するループ内でこれを行うことは問題ありません。これがどこで間違っているのか本当にわかりません。
編集:代わりに使用するという提案に応えて、これをQTimer
試みましたが、まだ同じ問題が発生しています。コードは現在、上にリストされているものよりもかなり複雑なので、フローを説明するためにここにいくつかの簡単な擬似コードを記述します。
Manager.new への呼び出しはそのオブジェクトを初期化し、最後に状態の変更でリスナーを呼び出します。これにより、配列update
にアクセスする Procが呼び出されます。actions
これは、この段階ではすべて同じスレッドにあるはずです.これらの行は、実際のQt::Action
. Rufus のスケジューリングを削除して に置き換えましたがQTimer
、それが問題になるには十分ではありません。
ruby - QGraphicsScene の qt-ruby とカスタム ウィジェット
qt-ruby を使用しており、addWidget() を使用して QGraphicsScene にウィジェットを追加したいと考えています。代わりに、QGraphicsProxyWidget を取得します。
後で、ユーザーが GraphicsScene をクリックしたときに、 itemAt() を使用して、クリックされたウィジェットを見つけます。しかし、itemAt() は QGraphicsItem を返します。
QGraphicsProxyWidget を QGraphicsItem に一致させるにはどうすればよいですか?
この問題は C++ で qgraphicsitem_cast を使用して解決しましたが、qt-ruby では使用できないようです。
助けてください!