問題タブ [widget]
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.
javascript - JavaScript ウィジェットで名前の競合を回避する方法
他のサイトに埋め込まれた JavaScript ウィジェット (埋め込まれた JS および HTML コードの一部) があります。変数名がホスティング ページの変数と競合しないようにするにはどうすればよいですか?
このウィジェットを iframe ではなく、ホスティング ページと同じページに「インライン化」したいのですが、ホスティング ページとの名前の競合や他のウィジェットとの競合を回避する最善の方法は何ですか?
名前の競合は、いくつかの方法で発生する可能性があります。
- JavaScript 変数名
- JavaScript 関数名
- DOM 要素の識別子
- CSS クラス名
- おそらくもっとある...
名前の競合を回避する方法はいくつか考えられますが、ベスト プラクティスやその他の一般的な推奨事項があるかどうか疑問に思っていました。だからここに私の2cがあります:
- 長くて一意になるような名前を使用してください。それは醜く、完全な証拠ではありませんが、概念は単純です。
- iframe を使用します。しかし、前述のように、いくつかの理由から iframe を使用したくありません。ウィジェットにページからスタイル属性 (デフォルトのフォントや背景色など) を継承させたいのですが、最も重要なのは、ウィジェットがどのくらいの大きさになるかわかりません。リアルタイム データに依存し、任意のサイズになる可能性があります。
- (function(){my code here})() など、より適切なスコーピングのために匿名関数を使用します。このソリューションは、エレガントですが、最初はまだ機能しません。衝突したJS名のみを解決しますが、DOM IDまたはCSSクラス名は解決しません.2番目に、コールバック関数を提供する必要があるjsonpも使用しますこれは最終的にグローバル スコープ内にある必要があるため、無名関数スコープ内でネストすることはできません。
- JS 変数と関数の一意性を提供する JavaScript で名前空間メカニズムを作成します。スタイル window['my_app'][variable_name] または window['my_app']function_name の何か。それも少し醜いですが、少なくとも私は名前空間を制御しており、一意の名前空間であることが保証されています。
android - 垂直方向に動作するように Android シークバー ウィジェットを変更する
エミュレーターで垂直シークバーを動かそうとしていますが、行き詰まっています。シークバーを希望どおりに表示し、進行状況を希望どおりに実行できます。onTouchEvent を変更して、サムが水平ではなく垂直に移動するようにします。私ができないのは、setThumbOffset() を使用せずに、親指をデフォルトの 29 水平ピクセルの外に移動することです。これ自体は問題ありません。問題は、私がthumbOffsetをまったく理解していないという事実から来ています-私は推測します。ウィジェットのサイズを(適切に)変更できると思いますが、これは正しく行っていないと確信しています。または、それを理解できれば、thumbOffset を使用することもできます。進行状況を正しく計算できるので、ウィジェットの進行状況 * (getTop() - getBottom()) の線形関数を使用するだけだと思っていましたが、そうではないようです。しかし、オフセットの中心が何なのかわかりません。
余談ですが、私が onSizeChanged() で行っていることが正気なのか、それとも後でお尻を噛むことになるのか、本当に確信が持てません。
main.xml のレイアウトは次のとおりです。
クラス (デバッグ用ジャンクは無視してください):
c++ - QWidget::paintEvent が呼び出されないのはなぜですか?
ウィジェットの単純な階層があります: GraphWidget -> MotionWidget -> NodeWidget。私は Qt を初めて使用するので、一部の内部がどのように機能するかについてはまだよくわかりません。基本的に、GraphWidget は単一の MotionWidget Mを作成し、 M の親をそれ自体に設定します。その後、 Mは立ち去り、多数の NodeWidget を作成します。ただし、NodeWidgets がペイントされることも、paintEvent() 関数が呼び出されることもありません。
GraphWidget を使用せずに MotionWidget を直接作成してみましたが、すべてが機能します。では、GraphWidget を階層に追加すると、なぜ問題が発生するのでしょうか?
これは、私のプロジェクトから関連するコードを貼り付けたものです。GraphWidget::dumpObjectTree() からの出力も上部に含めました。
編集:貼り付けリンクを含めるのを忘れました;)http://rafb.net/p/Zp39CF94.html
更新: MotionWidget をレイアウトにラップしました。
前:
後
さて、後者が機能します。つまり、すべてが描画されます。質問は次のようになります...なぜですか?最初のケースでは機能しなかったのに、2 番目のケースでは機能したのはなぜですか?
javascript - JavaScript のヒントはどのようにしてリモート ウィジェットをページに挿入するのですか?
ユーザーが JavaScript の一部をページに挿入できるようにする Web サービスがあるとします。JavaScript が読み込まれると、サーバーからウィジェットを取得してページに挿入します。どうすればそれを行うことができ、どのようなテクニックを使用する必要がありますか?
document.write?
jquery - ModelForm のすべての Django 日付フィールドのデフォルト ウィジェットを変更するにはどうすればよいですか?
一連の典型的なモデルが与えられた場合:
すべてのDateFieldのデフォルト ウィジェットをカスタム MyDateWidget に変更するにはどうすればよいでしょうか?
アプリケーションに日付を入力するための jQueryUI 日付ピッカーが必要なため、質問しています。
カスタム ウィジェットで django.db.models.DateField を拡張するカスタム フィールドを検討しました。これは、この種の全面的な変更を実装するための最良の方法ですか? このような変更には、特別な MyDateField をすべてのモデルに具体的にインポートする必要があります。これは、労力がかかり、開発者のエラーが発生しやすく (つまり、いくつかのモデルの DateField が通過します)、私の考えでは、労力の不必要な重複のように思えます。一方、models.DateField の標準バージョンと見なされるものを変更するのは好きではありません。
考えや意見をお待ちしております。
django - Djangoの特定のタイプのすべての組み込みフォームフィールドのデフォルトウィジェットをどのように変更しますか?
これは、ModelForm のすべての Django 日付フィールドのデフォルト ウィジェットをどのように変更しますか?のフォローアップです。.
非常に多数のモデル (A-ZZZ など) があり、制御できない他の開発者の入力によって成長し、すべての日付フィールドの入力方法を変更したいとします (つまり、jQueryUI を使用する)。その新しいウィジェットを使用してすべての日付フィールドが確実に入力されるようにする最善の方法は何ですか?
引用された質問からの1つの提案は次のとおりです。
ただし、明示的な ModelForm がない場合にこれを行うことは可能ですが、URL パターンはモデルから直接取得されますか? つまり、あなたのURL設定は次のようになります:
SomeModelA は、バックグラウンドで Django によって ModelForm に変換されるモデル (フォームではない) です。
現在、私のシステムには各モデルのフォームがありません。フォームを明示的に作成する唯一のポイントは、以前のソリューションで提案された formfield_callback を追加することですが、これは DRY の原則に反し、エラーが発生しやすく、労力がかかります。
(最後のスレッドで提案されているように) 特別なウィジェットを持つ独自のフィールドを作成し、組み込みの代わりにそれを使用することを検討しました。それほど労働集約的ではありませんが、エラーが発生する可能性があります (ただし、優れた grep で修正できないものは何もありません)。
提案や考えを歓迎します。
java - JAVA のウィジェット
Javaのウィジェットとは何ですか?
ruby - 実行時に Gtk Notebook ウィジェットにページを追加するにはどうすればよいですか?
私は次のコードを持っています:
基本的には、ボタンとノートブック ウィジェットを含むウィンドウです。ボタンを押したときにノートブック ウィジェットに新しいページ/タブを追加できるようにしたい。しかし、何も起こりません。手動で行うべき何らかの再描画はありますか? ノートブック ウィジェットを誤用していませんか? 実行時にタブを追加するにはどうすればよいですか?
windows - Qt GUIの内部-ウィジェットのペイント?
私はしばらくの間QTを使用していて、WindowsでのGUIの描画方法について何か疑問に思っていました。
QPainterを使用して、すべてのボタン、編集ボックス、コンボボックス、チェックボックス、タブなどを実際に単独でペイントしているのでしょうか、それともネイティブウィジェットを使用しているのでしょうか。
カスタムスタイリングとスキニングを実行できるという事実は、実際にはQPainterを使用してすべてを描画することを示唆していますが、この種のコードをどのように維持できるでしょうか。Qt開発者は、ウィンドウシステムの全機能を本当にリバースエンジニアリングしましたか?それはやや無駄ではありませんか?
これに対するもう1つの証拠は、QtGUIでSpy++を使用している場合、すべてのウィンドウが「QWidget」に等しいクラス名で表示されていることです。ネイティブウィジェットを使用している場合、これらは「BUTTON」、「STATIC」などではありませんか?
他のプラットフォームではどうですか?Max OSXでも同じことをしていますか?
python - wxPythonタイムラインウィジェット
プログラムで使用する特定のwxPythonウィジェットを探しています。このようなものが存在し、どこにあるかを知っていることを願っています。私が探している機能について説明しようと思います。
Audacityがオーディオトラックを表示するために使用するウィジェットのようなものを想像してみてください。これは、定規を使用した水平方向のタイムラインです。ズームインとズームアウト、スクロールが可能で、ルーラーが更新され、タイムラインのどこ/どのくらいの深さであるかが反映されます。タイムラインの有限セグメントのみが「占有」されます。つまり、実際にはデータが含まれます。残りは空です。タイムライン上の任意の時点をマウスで選択することができます。もちろん、「再生」させることもできます。つまり、指定した速度でタイムラインを左から右に移動します。
少なくとも私が説明していることに近い何かを知っているなら、私は興味があるでしょう。
このウィジェットの仕事が何であるかを知りたい場合:それはシミュレーションを実行するためのプログラムのためのものです。プログラムはバックグラウンドでシミュレーションを計算し、タイムラインの「占有」部分を拡張します。タイムライン内のさまざまなポイントを選択して、特定の時点でのシステムの状態を観察することができます。もちろん、シミュレーションを再生することもできます。
ありがとう!