タグ付けされた質問 「gui」

グラフィカルユーザーインターフェイス(GUI、ときどきグーイーと発音される)の計算では、ユーザーがテキストコマンドではなく画像を使って電子デバイスとやり取りできるようにする一種のユーザーインターフェイスです。GUIは、コンピューター、MP3プレーヤー、ポータブルメディアプレーヤーやゲームデバイスなどのハンドヘルドデバイス、家庭用電化製品、オフィス機器で使用できます。

3
Java Swingアプリでのウィンドウ管理の設計パターン
最初の小さなJava Swingアプリの作成を開始しました。プログラムが開くと、ラベルと2つのボタンを備えた単一のシンプルなウィンドウが表示されます。これらのボタンの1つをクリックすると、ウェルカム画面が消去され、まったく別のパネルに置き換えられます。 その機能を作成する最良の方法が何であるかはわかりません。1つの方法はJFrame、引数としてmy を他のすべてのコンポーネントに渡すことですが、それは私にはハッキーな感じがします。または、各パネルをアクションリスナーとして2重にしていますが、それも正しくないようです。 ここで適用すべきデザインパターンはありますか?「メインウィンドウのコンテンツのみを置き換える」は、かなり一般的な操作である必要があります。パターンの名前で十分です。そこから自分でGoogleを使うことができます。(ただし、これ以上の説明にはノーとは言えません。)

1
オプションvs設定vs設定?それらは何を意味し、何のためにそれらを使用すべきですか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 3年前休業。 さまざまなプログラム全体で、ほとんどの場合、次のメニュー項目があります。 Preferences Firefox クロム Gedit シナプス(Settingsメニュー列の下) Hexchat(Settingsメニュー列の下) Gnomeターミナル サンダーバード リズムボックス 頻度は低いものの: Options QtCreator それほど頻繁ではありません: Settings Gvim クロム 設定が最も使用されているようですが、一部のプログラムにはありません。用語は同義語ですか、それともそのようなラベルがどこにつながることになっているのかについて区別する必要がありますか?

1
ハードウェアアクセラレータのGUIデータはGPUに保持されますか
ほとんどのハードウェアアクセラレーションGUIライブラリがどのように機能するかについて、いくつかの調査を行っています。ここでは、実際にはそれらのレンダリングバックエンドのみに関心があります。私は、自分自身をある種のサイドプロジェクトとして書き、書くための最良の方法を理解しようとしています。ここでは、過度に凝った機能ではなく、究極のパフォーマンスを目指しています。プリミティブ、テキスト、アニメーションを描けるようになりたいです。 私が知っているいくつかの優れたライブラリーは、Qt、Skia、およびCairoです(ただし、HWAの状況が何であるかはわかりません)。私はまた、きちんとしたフォローがあるように見える小さなライブラリーであるNanoVGを見ました。私はNanoVGでまともなパフォーマンスを達成することができませんでした... 私を驚かせた唯一のことは、これらのライブラリすべてが「ペイント」の概念を利用しているようであり、各プリミティブ形状が最初から何度も描かれているように見えることです。つまり、APIからは、形状がGPUで「オブジェクト」として作成されたかのように表示されず、用語が何であれ、そこに残されて「自動」でレンダリングされるわけではありません。言い換えると、それらは、いくつかの大きなループで再描画されるためにGPUのメモリに残されません。詳しく説明すると、描画する必要がある各ie長方形に対して、その長方形をレンダリングするためだけにOpenGL状態全体が設定され、その後再び破棄されるようです。これらのレンダリングされた形状は、少なくとも最終的な宛先でレンダリングされているように見えますが、GPUはシーン全体を構成できます。 これらのライブラリが機能することを期待していた方法は、実際にシーン全体をGPUに保存することです(恐ろしい用語を除きます)。たとえば、プリミティブは三角測量されてメモリに残され、その後、複雑なプロセスを使用してシーンのメインレンダリングループが作成されます。さらに、属性を更新したり、プリミティブを削除または追加するためのメカニズムが配置されます。これはかなり漠然とした説明ですが、あなたはアイデアを理解していると思います。 私が今聞きたいのは、「保存」アプローチと比較して「ペイント」アプローチにパフォーマンス上の利点があるかどうかです(ここでも、これらに適切な名前があるかどうかわかりません...)。おそらく、ある種の複雑なキャッシングメカニズムですか?それとも、これで作業する方がはるかに簡単ですか? 「保存」アプローチではGPUでより多くのメモリを使用する可能性がありますが、「ペイント」アプローチに必要なすべてのOpenGL呼び出しはそれほど高価ではありませんか?レンダリングされた形状をキャッシュすることでこれを補正できるかもしれないと思いますが、GPUは、特に通信を考慮して、CPUに比べてこのような一度限りの(またはあまり規則的でない)ラスタライゼーションを実行するときに非常に大きなメリットを提供しますオーバーヘッド?また、この通信のオーバーヘッドは、フレームごとに描画を行わなければならないときに、アニメーションに深刻な問題を引き起こしませんか? NanoVGに内部キャッシングメカニズムがないことは確かであり、これがかなり劣ったパフォーマンスの原因であると思います。一方、Qtは優れたパフォーマンスを持っているように見えるので、正しく動作しているはずです。グーグルもスキアを上手く利用できるようだ。 PS。私はあらゆる種類の専門家ではなく、つい最近OpenGLを学び始めました。 編集:私が考えたもう1つの可能性は、おそらく「描画」アプローチが純粋にメモリの利点のために必要であると考えられたということですか?私が思うのは、これらのすべてのライブラリはもちろん別の時代に始まったものであり、組み込みプラットフォームもターゲットにしているため、GPUメモリはターゲット(ed)プラットフォームでは不足している可能性があり、使用量は可能な限り少ないためです。パフォーマンスよりも重要です。繰り返しになりますが、このような状況では、通信オーバーヘッドがCPUを上回っていることを考えると、フレームごとのGPUラスタライゼーションがCPUよりも優れているとは確信できません。 さらに、http://blog.qt.io/blog/2010/01/06/qt-graphics-and-performance-opengl/を読んだところ、Qtは実行時にプリペイントされたセグメントのシェーダーコードを実行時に「ペイント」する前にブレンドし、次に、OGLコンパイラーが実行時にコードを適切にインライン化することを期待しています。これは、OGLの初期化オーバーヘッドがさらに増えるように思えます...
8 gui  qt  opengl  gpu 

3
Pythonアプリケーション用のブラウザベースのGUI [終了]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 コマンドラインのpythonアプリケーション用のウェブ/ブラウザベースのGUIを作成したいと考えています。目標は、このGUIを作成するためにHTML / JSテクノロジーを利用することです。アプリケーション自体として、LinuxとWindowsで実行する必要があり、インターフェースはlocalhostからのみアクセスできます(インターネットに公開されません)。GUIには5〜10ページが含まれます。 HTML / JSを含む従来のデスクトップGUIは必要ありませんが、一連のHTMLファイルと、それらとアプリケーションの間にある種のコントローラーが必要です。 また、ページ全体を更新せずに、GUIでデータを読み込んで印刷できるように、非同期プログラミング(ajaxのような)を利用したいと思っています。私はおそらくそのためにjQueryを使用しますが、他にもいくつかあります。 これをどのように設計することをお勧めしますか?ここではパフォーマンスは重要ではありません。私はむしろ、信頼性、移植性、シンプルさを考えています。 私は軽量のPython HTTPサーバー/フレームワーク(CherryPyなど)を使用することを考えています。後でPythonテンプレートシステムを使用することもできます(最初は数ページになります)。 編集: 私はこれを構築するためのアイデア/推奨事項を探していますが、ブラウザ/ウェブベースのGUIに代わるものではありません。

4
GUIをコマンドラインアプリに追加するためのいくつかの標準的な設計方法は何ですか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 6年前休業。 単純なCLIで実行される組み込みLinux Cアプリケーションがあります。現在、コマンドラインプログラムと同じ機能を実行するGUIを作成する必要があります。私は熟練したGUIデザイナーではなく、私の経験が深く埋め込まれたCコーディングである場合は大多数です。 私の最初の考えは、qtcreatorを使用してGUIを作成することですが、私が反省しているいくつかの問題があります。 今後は、CLプログラムとGUIプログラムの両方を維持したいと思います。できれば、どちらのモードでも起動できるまったく同じ実行可能ファイルにすることもできます。これが悪い考えでない限り? 私のコードはこれまでのところCにあり、qtはネイティブでc ++です GUIでボタンを押すと、CLIから呼び出すのと同じ関数を呼び出す直接相関関係が欲しい これをクリーンかつ効率的に行うにはどうすればよいですか?これを簡単にする他の技術やライブラリはありますか?もっと良いものがあればqtを使う必要はありません。
8 c  gui  embedded-systems  qt 

3
シンプルなウィジェットシステムで、各ウィジェットがその親への参照を必要とするのはなぜですか?
私は単純なウィジェットシステム(単一ウィンドウ、固定サイズ)に取り組んでいます。各ウィジェットは、その親(つまり、ウィジェットを含むウィジェット)をコンストラクターに渡します。ただし、私がScreenと呼んだルートウィジェットを除きます。 そのアプローチが理にかなっているかどうか、私にはいくつかの疑問があります。以前使用したほとんどのウィジェットシステム(Qt、GTKなど)で実行したためですが、これらは私のものよりもかなり複雑であることに気付きました。 ウィンドウのサイズ変更はありません 子供のサイズに基づいてコンテナのサイズを設定する予定はありません メモリ管理には必要ないと思います(C ++を使用しています)。代わりに共有ポインタを使用できます(基本的にはJavaでの動作) ウィジェットがその親への参照を必要とする理由はありますか? これを変更することは大きなリファクタリングです。そのため、先に進んでコンテナーとレイアウトを実装する前に、その親が必要かどうかをよく理解したいと思います。 編集:親はとにかくそのすべての子を知っていることに注意してください。子供も親を知る必要があるのか​​と思っています。

5
クロスプラットフォームのC ++ GUIライブラリを選択する場合、何を探す必要がありますか?
学習C ++プログラマーとして、自分のプロジェクト用のGUIフレームワークまたはライブラリーを選択しようとしています。 私はQtについてある程度の経験があります。それは非常に単純で、非常に優れたドキュメントがあり、多くのツールを提供しますが、標準ライブラリの多くを複製しているようです。 すべてのC ++ GUIライブラリはこのようなものですか?GUIライブラリでは何を探す必要がありますか?特定の問題が与えられた場合にどの方法が最適かをどのように判断しますか 特定の1つのライブラリに焦点を当てるべきですか、それともそれらが異なる目的に役立つ可能性があるので、それらのいくつかを知っておく価値はありますか?

8
GUIデザイナーを使用するか、デスクトップ用に自分で作成しますか?
プログラムのGUIを作成することは、常に困難で憂鬱でイライラする作業でした。どの言語でもかまいません。欲しいものを手に入れるのは非常に難しいです。特に、Javaのようなコンパイルされた言語では、変更のビルドに1〜2分かかります。 その結果、一部のプロジェクトでGUIデザイナーを使用することが増えています。確かにいくつかのスパゲッティコードがありますが、設定と「これはXで設計されました」というメモを残している限り、これを行うことに抵抗はありません。 これはGUIを設計するための大丈夫な方法ですか?さらに重要なことに、これはほとんどの人がすることですか?それとも、ただ座ってそれを書き出す一般的な方法ですか?

3
どのDVCSでどのGUIツールを使用できますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、討論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 私がSunで働いていたとき、私たちはForte SCCS / Teamwareと呼ばれるDVCシステムを使用しました。これは、古いSCCSファイル形式を使用しましたが、真の分散ソースコードリビジョン管理システムでした。 優れた機能の1つは、強力なGUIサポートがあったことです。 クリックしてドラッグするだけで、変更をもたらしたり元に戻したりできます。 ワークスペースが互いにどのように関係しているかを示すツリー/グラフを描画します。 グラフビューを使用して、単一のファイルの完全な履歴を表示することもできます。これには、複数のブランチとマージがあった可能性があります。2つのポイントを比較できます。 また、2つの競合するファイルのいずれかからの変更を受け入れるための強力なビジュアルマージツールも備えていました。 当然のことながら、現在のDVCSの多くにはこれらの操作のコマンドラインサポートがありますが、これを教える低学部のコースでこれを使用するためのGUIサポートを探しています。 Forte Teamwareソリューションが完璧であると言っているわけではありませんが、それは時代を先取りしているようでした。残念ながら、それは私のクラスで使用する実行可能なオプションではありません。 質問:現在のDVCSは、GUIに関してどのようなサポートがありますか?Linuxだけでなく、Windowsでも動作するものはありますか?彼らは「ゴールデンタイムの準備ができている」か、それともまだ進行中ですか?これらはスタンドアロンですか、またはEclipseなどのプラグインとしてビルドされていますか? 注:この議論の焦点を維持するために、私はGUIツールのみに関心があります。GUIツールを教育に使用する必要がある場合、メタディスカッションではありません。
8 tools  gui  dvcs 

5
Java / C ++でのアプリケーションプログラミングのコード生成でGUIデザイナーツールを使用することは悪い習慣ですか?
私は、stackOverflowの質問で、GUIデザイナープログラムを使用すると多くの厄介なコードが生成される可能性があり、より小さなプログラムを作成しているのでない限り、悪い習慣と見なされていることを読みました。 私の質問はその理由と方法です。GUIデザイナープログラムを使用するのは悪いことですか?どうして? 追加の詳細: Windowsプラットフォームでのプログラミング。 C ++ / JavaでのWindowsプログラムのみのプログラミング。 IDEにはGUIデザイナーが付属しているため、私はVisual Studio 2010(Express Editionではない)を使用しています。

4
GUIの自動テストを行うにはどうすればよいですか?
見えているものと見えないものを自動的に確認するにはどうすればよいですか?または、少なくとも一部の自動テストをどのように整理できますか? IDE:Eclipse(必要に応じてIntelliJ Ideaも使用できます) テストツール:Junit(ここでも、助言されれば他の何かを使用できますが、無料であればより良いです) アプリケーションOS:Android 開発者のOS:Linux(MACまたはWindowsで変更される可能性があります(しぶしぶ)) 言語:Java すべての作業は外部デバイスで行われます。エミュレーターはありません。 このアプリケーションは、外部アクティビティと呼ばれるファームウェアTVプレーヤーのユーザーラッパーです。したがって、コードの70%はGUI用です。(残りの30%はサーバーに話しかけ、GUIに情報を提供します) テスト機能をプログラムする前は、ツールを使用していません。今私は手元にツールを持っています。しかし、UIをツールを使用して、またはツールを使用せずにテストする方法を想像することはできません。(厳密には、インターネット接続では問題も発生しますが、おそらく他の質問のために残しておきます。)答えはプラットフォームに依存しすぎている必要はありません。原則とアイデアも役立ちます。 もちろん、チェックするのは良いことです。別の要素があり、チェックされているかどうかです。そのためには、いくつかの回帰チェックが適しています。しかし、アニメーションで注文したように、言及されている要素が他の要素やウィンクによってカットされていないことも確認する必要があります。 ここでのアドバイス:https : //softwareengineering.stackexchange.com/questions/63245/is-there-a-tool-to-test-java-ui は役に立ちません-ツールのみであり、原則ではなく、私の状況ではツールが役立ちます。
8 java  testing  gui  ui 

7
吟味できない重要な入力をどのように検証しますか?
入力を吟味する実用的な方法がないときに、ユーザーが誤った入力セットを作成するのをどのように防ぐのですか? シーン Visual FoxProで書かれた小さなERPパッケージを変更します。パッケージの一部は、トラックのマニフェストとドライバーが配達ルートに送る請求書を印刷することに関係しています。入力として何も入力されない場合、印刷ルーチンはすべてを印刷しようとするため、高速プリンターで無駄になる大量のプリンター用紙が発生します。 私は、GUIインターフェース要素を書き換える立場になく、フレームワーク、ツールキット、またはその他の外部コードをこの状況で使用するように改造することもできません。理由はオフィスの政治に関連しています。既存のERPフレームワークを上書きできるとは言わないでください。これは私には選択肢がないためです。 問題 ユーザーは、圧力が高く、タイムクリティカルな環境にいます。各プロセスは数分または数秒で測定されます。つまり、処理時間をできるだけ最小限に抑える必要があります。この環境と気が散る可能性があるため、ユーザーはダイアログを頻繁に無視し、[Enter]キーを押すと、フォーカスがフォーム内をすばやく移動し、最終的に入力ダイアログのアクションボタンに移動して、自動印刷がトリガーされます。 。 入力は、日付範囲、ルート範囲、および受注範囲で構成されます。 頻繁なバックプリントが必要なため、日付範囲の入力を「今日の日付」に自動設定することはできません。また、エンドユーザーは真夜中に作業を行います。つまり、日付のロールオーバーは、変更を自動検出するルーチンを装備することなくこれを非現実的にします。 ルートの入力はハードコードできません。また、再印刷が必要なため(上記を参照)、すでに出荷されているルートからそれを推定することはできません。 販売注文の入力は、単一の注文または特定の範囲を印刷する場合にのみ意味があります。 したがって、率直に言って、入力を検証する実用的な方法はありません。 印刷をトリガーするアクションボタンはブロックできません。ユーザーの前にブロッキングダイアログを配置するという提案は無視されます。これがオプションではない理由については、私は自由に議論することはできません。ただし、この概念はサイトの他の場所で(別の視点から)すでに議論されており、拒否されました。 ソフトウェアが機能としてこれに対応する必要があるため、すべての入力が空のときに印刷出力をブロックすることは、設計決定として拒否されました。 ユーザー ユーザーはこれを繰り返さないよう繰り返し求められています。彼らはしばしばこのアドバイスを無視します。この不幸な出来事を引き起こすことは彼らの職長/マネージャーが対処するものではないので、行動を終わらせる圧力はありません。 組織 関係するワークフローには発言権はなく、そのワークフローによって影響を受ける既存のソフトウェアコンポーネントの変更のみです。 提供事業者 ベンダーは、元のソフトウェアベンダーからカスタムインストールとしてパッケージをセカンドソースします。ベンダーは、コードベースへの統合のために、すべてのコード変更をベンダーに送り返すことを要求しています。アーキテクチャに大幅な変更を加えると、広範なカスタマイズが行われるため、バージョンの移行中に将来のコストが増加します。場合によっては、プログラマーは、そのような大きな変更を完全に無視し、好きなように実行することを私に伝えさえしました。 ソフトウェア ソフトウェアの選択やインストールについては言うまでもないので、プラットフォームの変更は問題外です。 ソフトウェアの環境に関しては、印刷される各請求書は単一の呼び出しです。バッチ印刷機能はありません。印刷機能がシステムに統合されている方法(および一部の言語の癖)のため、そのAPIの周りにバッチラッパーを作成することはできません。これに加えて、プログラムのこの部分は、請求書印刷を実行する別のプログラムを呼び出し、次に、請求書を1つ印刷するprint-a-report APIを呼び出します。恐ろしいデザインですね。 入力フォームはフォームヘッダーの奇妙な組み合わせで、入力ボックスはありませんが、他のGUI要素を含めることができます。入力ボックスは実行時に定義されます。 目的 ソフトウェアは、ユーザーが誤ってすべての書類を印刷することを防ぎます。 この問題をどのように解決しますか?
8 gui  erp 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.