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

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

9
Javaプログラムを「ネイティブに表示」するのが難しいのはなぜですか?
ほとんどのJavaアプリケーションは、C / C ++アプリケーションと同じようには見えません。Swingは、見た目が明確になるように意図的に設計されたかもしれませんが、私が読んだ内容に基づいて、たとえばSWTは「ネイティブに見える」ことを試みましたが、完全に成功しません。 私の質問は: Java言語の開発者がネイティブGUIの外観を正確にコピーするGUIシステムを設計するのが難しいのはなぜですか?ネイティブGUIの違いは何ですか?「ネイティブ」ボタンのように見えるボタンを設計するだけの問題ではありませんか?それともそれよりも深くなりますか?
98 java  gui 

10
肥大化したGUIコードの記述を避けるにはどうすればよいでしょうか?
GUIコードを使用すると、コードが他の種類のコードよりも速く膨張する傾向があります。また、リファクタリングが難しいようです。一方、他の種類のコードではかなり簡単にリファクタリングできます-より大きなクラスをより小さな機能に分解できることがわかります-ほとんどのGUIフレームワークでは、多くの場合、ウィジェット/コントロール/クラスを必要とするフレームワークに縛られていますウィジェット/コントロール/その他にもっと多くのものを直接実装します。これは、(a)いくつかのベースウィジェット/コントロール/ものから継承するか、(b)保護されたメソッドにアクセスする必要があるためです。 また、通常、たとえば、フレームワークからの信号/イベント/何でもを介して多種多様な入力に応答して、ユーザーと対話するすべてのモードを実装する必要があります。1つのGUIウィジェット/コントロールで、次のようなさまざまな入出力を処理する必要がある場合があります。 右クリック/コンテキストメニュー コンテキストメニューからの選択に反応する GUIをペイントする特別な方法 キーボード入力に反応する ボタン、チェックボックス、 などなど ...その間、ビジネスロジックを表すGUIの下でクラスを管理します。 シンプルでわかりやすいGUIでは、ビジネスロジックを分離してMVCを使用する場合でも、コードを非常に迅速に成長させることができます。GUIコードは変更の大きな魅力です。 GUIコードを健全な方法で管理し、壊れたウィンドウにならないようにする方法はありますか?それとも、ランダムなイベントハンドラー/オーバーライドされたメソッドの塊が、GUIコードに対してできる最善の方法なのでしょうか。
48 refactoring  gui 

6
グラフィックデザイナーと仕事をする正しい方法は何ですか?[閉まっている]
最近、グラフィックデザイナー(クライアントが手配)と協力して、作成したDjango + Bootstrapアプリケーションのスキンを提供しました。デザイナーは、いくつかの技術的属性(フォントサイズ、色、いくつかの寸法など)を説明するドキュメントとともに、新しいレイアウトの一連の静的画像を提供しました。 これを実装するには非常に時間がかかることが判明しました。サイト全体は基本的にフロントページ、インデックスページ、および6つの詳細ページでしたが、CSSとHTMLの変更を実装するだけで少なくとも5日間を費やしました。それで、私は手足に出て、これを間違った方法と呼びます。 私の基本的なアプローチは: 静的な画像と現在のレンダリングを比較して、違いに注目してください。 CSS / HTMLでどのような変更が必要かを推測します その変更を行う 手順1に進みます。 特定の問題のいくつかは、デザインに8列から12列への変更が含まれていることを理解していないことでした。ピクセルパーフェクトレンダリングなどを実現するために通常のCSSレスリングを使用します。また、特定の動作を得るために、HTMLテンプレートを再編成しなければならない場合がありました。 正しい方法は何ですか?

6
iOSで大きくて不器用なUITableViewControllerを避ける方法は?
iOSでMVCパターンを実装するときに問題があります。インターネットを検索しましたが、この問題の良い解決策を見つけられないようです。 多くのUITableViewController実装はかなり大きいようです。私が見てきた例のほとんどは、することができますUITableViewController実装<UITableViewDelegate>と<UITableViewDataSource>。これらの実装は、大きくなっている大きな理由UITableViewControllerです。一つの解決策は、その実装別々のクラスを作成することです<UITableViewDelegate>と<UITableViewDataSource>。もちろん、これらのクラスにはを参照する必要がありUITableViewControllerます。このソリューションを使用する上で欠点はありますか?一般に、デリゲートパターンを使用して、他の「ヘルパー」クラスなどに機能を委任する必要があると思います。この問題を解決する確立された方法はありますか? モデルに含まれる機能やビューが多すぎないようにします。これはMVCパターンの基礎の1つであるため、ロジックは実際にはコントローラークラスにあるべきだと思います。しかし、大きな問題は次のとおりです。 MVC実装のコントローラーを、どのように小さな管理可能な部分に分割する必要がありますか?(この場合、iOSのMVCに適用) これを解決するための一般的なパターンがあるかもしれませんが、iOSのソリューションを具体的に探しています。この問題を解決するための良いパターンの例を教えてください。ソリューションが優れている理由を説明してください。

12
GUIプログラマーは他のプログラマーに比べて過度の利点がありますか?
マネージャーや顧客は、自分が見ることができるものに感謝するのは簡単です。 私は、設計原則やその他のプログラミングのイディオムについて最低限の知識しか持たない平均的なプログラマーである多くのGUI開発者を見てきました。ただし、プログラマーが印象的な外観のユーザーインターフェイスを作成できる場合、これらの欠点は、特に経営陣と顧客によって特に気づかれません。私が知っている多くのGUI開発者は、保守できない悪いコードを書くことを犠牲にしてGUIを美化するのに何時間も費やしています。 一方、APIやビジネス機能、またはデータベースコード(SQLなど)を開発する中間層プログラマーは、具体的に示すものが何もないため、不利です。おそらく、コードレビューアまたはアーキテクトは、コードの優雅さ、優れたデザイン、スケーラビリティなどを高く評価するかもしれませんが、外の世界にとっては何の意味もありません。あなたのコードは何年も壊れることなく実行でき、維持が非常に簡単で、優れたパフォーマンスを発揮しますが、滑らかなGUIのような「すごい」を引き出すことはありません。 私の意見では、これに対する帰結は、GUIプログラマーが良いクリーンなコードを書くためのモチベーションが低いということです(そして、私はこれに重く賛成するつもりです)。 編集:ここでは、GUIプログラマーによって、本格的なWeb / GUIデザイナーではなく、Javaスイングプログラマーなどのフロントエンドプログラマーであることを説明する必要があります。 コミュニティの他のメンバーは同意しますか?
23 gui 

3
Pyqt / QtアプリのロジックからUIを適切に分離する方法は?
私は過去にこの主題について多くのことを読み、ボブおじさんのこのような興味深い講演をいくつか見てきました。それでも、デスクトップアプリケーションを適切に設計し、UI側の責任とロジック側の責任を区別することは常に非常に難しいと感じています。 優れた実践の非常に短い要約は、このようなものです。UIから切り離したロジックを設計する必要があります。これにより、どの種類のバックエンド/ UIフレームワークに関係なく(理論的に)ライブラリを使用できるようになります。これが意味することは、基本的にUIは可能な限りダミーであるべきであり、重い処理はロジック側で行われるべきだということです。別の言い方をすれば、文字通り、コンソールアプリケーション、Webアプリケーション、またはデスクトップアプリケーションで素敵なライブラリを使用できます。 また、ボブおじさんは、どのテクノロジーを使用するとさまざまなメリットが得られるか(良いインターフェース)を議論することを提案します。 ですから、この質問は非常に広範な質問であり、インターネット全体で何度も議論されてきました。そこで、何か良いものを得るために、pyqtでMCVを使用しようとする非常に小さなダミーの例を投稿します。 import sys import os import random from PyQt5 import QtWidgets from PyQt5 import QtGui from PyQt5 import QtCore random.seed(1) class Model(QtCore.QObject): item_added = QtCore.pyqtSignal(int) item_removed = QtCore.pyqtSignal(int) def __init__(self): super().__init__() self.items = {} def add_item(self): guid = random.randint(0, 10000) new_item = { "pos": [random.randint(50, 100), …
20 design  python  mvc  gui  coupling 

1
Pythonでtkinter GUIをプログラミングするときにクラスを使用する理由
私は主にPythonでプログラミングし、TkinterでいくつかのGUIをプログラミングしました。これまでに見たすべてのチュートリアルでは、GUIのクラスを定義して使用することを推奨していますが、GUIはクラスなしで手順のみを使用して問題なく実行されます。 クラスを使用する理由 私の観点からは、単純に余分な複雑なレイヤーと不要なコードであるように思えます。
19 python  gui  class 

2
GUIを設計および実装するための何らかの体系的な戦略はありますか?
Visual Studioを使用して、C#でGUIアプリケーションを作成しています。ツールボックスは気の利いたコンポーネントパレットとして機能し、ボタンやその他の要素(わかりやすくするために「コントロール」を意味する場合はボタンと呼びます)をフォームに簡単にドラッグアンドドロップできます。ただし、2つの問題が発生します。 そもそもボタンを作成するのは大変です。静的ではないフォームがある場合(つまり、ユーザーの操作に応じて実行時にボタンまたはその他のコントロールが作成される)、パレットをまったく使用できません。代わりに、使用しているメソッドでコンストラクターを呼び出して各ボタンを手動で作成し、ボタンの高さ、幅、位置、ラベル、イベントハンドラーなどを指定して手動で初期化する必要があります。フォームがどのように見えるかを確認することなく、これらのすべての化粧パラメータを推測する必要があるため、これは非常に退屈です。また、各ボタンに対して多くの行の反復コードを生成します。 ボタンに何かをさせるのも大変です。フル機能のアプリケーションでイベントを処理することは大きな苦痛です。私がこれを行う方法を知っている唯一の方法は、ボタンを選択し、そのプロパティのイベントタブに移動し、イベントをクリックしてOnClickイベントFormのコードを生成し、イベントの本文を入力することです。ロジックとプレゼンテーションを分離したいので、イベントハンドラーはすべて、適切なビジネスロジック関数の単一行呼び出しになります。しかし、これを多くのボタンに使用すると(たとえば、MS Wordなどのアプリケーションに存在するボタンの数を想像してください)、数Form十の定型イベントハンドラーメソッドでmyのコードを汚染し、これを維持するのは困難です。 これらのため、Hello Worldよりも複雑なGUIプログラムは、実際に作成するのは非常に非現実的です。明確にするために、最小限のUIを使用して作成するプログラムの複雑さを扱うことには何の問題もありません。ビジネスロジックコードをきちんと構築するために、かなりの能力を備えたOOPを使用できると感じています。しかし、GUIを開発するとき、私は立ち往生しています。とても退屈だと思うので、私は車輪を再発明しているように感じます。また、読んでいないGUIを適切に行う方法を説明する本がどこかにあります。 何か不足していますか?または、すべてのC#開発者は、繰り返しイベントハンドラーとボタン作成コードの無限のリストを受け入れるだけですか? (うまくいけば役立つ)ヒントとして、良い答えが語れると期待しています: OOP手法(ファクトリーパターンなど)を使用して、繰り返しボタンの作成を簡素化する 多くのイベントハンドラを単一のメソッドに結合し、Senderどのボタンがそれを呼び出したかを判断し、それに応じて動作する単一のメソッド XAMLおよびWindowsフォームの代わりにWPFを使用 もちろん、これらのいずれにも言及する必要はありません。どんな種類の答えを探しているのかということに関しては、最善の推測です。
18 c#  gui  visual-studio 

6
優れたユーザーインターフェイスのインスピレーションはどこで得られますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 私が現在アップグレードしているデスクトップアプリケーションのメイン画面インターフェースを設計する限り、私は精神的なブロックを持っています。このプログラムを最初に開発したとき、画面解像度は640 X 480でした。今日では、複数の画面解像度があります。 デスクトップアプリケーションの優れたメイン画面レイアウトのアイデアはどこにありますか?

7
デスクトップGUI開発を学ぶ価値はまだありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 過去数年間、私が取り組んできた深刻なプロジェクトはすべて、Webベースであるか、非グラフィカルユーザーインターフェイス(サービス、コマンドラインスクリプトなど)を使用していました。WinFormsアプリをまとめて投げたり、必要なときにいくつかの簡単なWPFを実行したりできますが、MFCやQTなどの低レベルAPIを掘り下げたことはありません。 これは状況に依存することを理解していますが、一般に、デスクトップ開発についてよく学ぶのに時間をかける価値がありますか?それとも、この知識があまり重要ではないペースでアプリケーションがWebおよびモバイルデバイスに移行していますか?また、一緒に働く開発者はデスクトップGUIの専門知識を持っていると期待していますか?

8
コンソールベースのプログラミングからGUIベースのプログラミングに移行する場合の主な違いは何ですか?
私は、他の多くの人と同じように、コンソールベースの(プレイステーションではなく端末のような)プログラミングから始めました。ただし、遅かれ早かれ、GUIベースのプログラミングに触れる必要があります。この移行には、フロントエンド(および場合によってはバックエンド)について考える必要がある方法に多くの変更が含まれています。 それでは、コンソールベースのプログラミングからGUIベースのプログラミングに移行するときの主な違いは何ですか?
18 gui 

9
CLI指向のプログラマーのワークフローはGUI指向のワークフローとどう違うのですか?
GUIアプリでプログラミング作業を減らし、より多くのコマンドラインツールを使用することの利点(特に、より効率的に作業を行うことに関して)について多くのことを聞きました。ただし、コマンドラインツールにさらに依存する場合、ワークフローがどのように異なるかがわからないため、新しいツールセットを学習して変更する時間と労力を個人的に投資するのに十分な見返りがあるかどうかをすぐに評価することはできません私のワークフロー。 たった今: Visual Studio、Eclipseなどを使用してC / C ++ / D / C#/ Java / Pythonなどの言語でいくつかのサイドプロジェクトをコーディングし、ビルド設定をセットアップし、F5キーを押してビルド/実行して実行します。 私は職場でWebプログラムを開発しています。そのためには、Djangoを使用してサーバーのセットアップ、データベースへの接続などを行います。ほとんどすべてがSciTEテキストエディター内で行われます。 通常のプログラムを起動するには、Launchyを使用します...まだ端末はありません。:) ファイルなどをコピーするには、グラフィカルファイルマネージャー(Windowsエクスプローラー、Nautilus)で通常の検索/移動を使用します。 デバッグ:Windows用のVisual Studioまたはデバッグツールを使用します(Windowsを使用している場合)。Linuxでのデバッグはあまりしていませんが、やったことのために、Eclipse(Windows上のJavaでも)を使用しました。 仕事中:ビルドシステムに接続してプロジェクトをセットアップするには、使用するためにEclipseに統合されたツールを使用するだけです。端末などは必要ありません(ただし、本当にしたい) CLIでこれらのことを行うのはどのようなものですか?どの部品がより効率的/効率的になりますか?主にCLIでの作業から最大の利点を得るには、ワークフローのどの側面を変更する必要がありますか?言い換えれば... 魔法のように私をコマンドラインの第一人者に変えたなら、私の新しいコーディングワークフローは、現在のGUI中心の物事のやり方とどう違うのでしょうか?
17 gui  cli 

7
GUIから開始してアプリケーションを構築すると便利ですか?
アプリケーションの設計と開発の傾向は、「ガッツ」から始まっているようです。ドメイン、データアクセス、インフラストラクチャなどです。通常、GUIはプロセスの後半に来るようです。最初にGUIを構築するのが役に立つのではないかと思います... 私の理論的根拠は、少なくともプロトタイプGUIを構築することで、舞台裏で何が起こる必要があるかをよりよく理解できるため、ドメインとサポートコードで作業を開始するためのより良い位置にいるということです。 サポートコードがまだ記述されていない場合、GUIレイヤーが実際に行うことはあまりないという点で、このプラクティスの問題を見ることができます。おそらく、モックオブジェクトまたはスローアウェイクラス(ユニットテストで行われているようなもの)を構築すると、最初にGUIを構築するのに十分な基盤が提供されます。 これは実際のプロジェクトにとって実行可能なアイデアかもしれませんか?GDD(GUI Driven Development)を頭字語stableに追加できるかもしれません...

5
C#とNUnitを使用してGUIアプリの単体テストを構成する方法
簡単なアプリケーションを顧客の1人に提供するために、小さなサイドプロジェクトを行うように依頼されました。通常、テストニーズをすべて把握しているバックエンドコードで作業しますが、GUIのテストを作成することについてまだ疑わしい喜びがありません。 EXEのテストコードとツール。 私の最初の本能は、テストをアプリケーションコードに単純に含めることでしたが、テスト固有の多数の依存関係を提供する必要があり、特に顧客に出荷しないように指示されました。また、専用のテストツール用に現金を絞り込めないため、手元にあるツール(StoryQ、RhinoMocks、およびNUnitを使用する必要があります。)、これは実際に単純なGUIアプリの動作をテストするのに十分なはずです。したがって、私が見る限り、これにより、デザインを本当にシンプルに保つか、テストのために意図的にオーバーエンジニアリングするかのバランスをとろうとしています。別のライブラリでビジネスロジックを使用してアプリを構築し、通常どおりにライブラリに対してテストするか、アプリケーション設計ではない追加のモジュールを壊さずに実行可能ファイルを許可する他のメカニズムを見つけているようです本当に必要。 編集: この質問は、DLLとは対照的に、NUnitと実行可能ファイルの関係を構築する方法に関するものであり、プレゼンテーションとビジネスロジックを分離する方法に関するものではないことに注意してください。 /編集 だから私の質問は: 単純なGUIアプリケーションを単体テストで構成して、手元にあるツールを使用して、過剰なエンジニアリングに頼らずに状態と動作を適切にチェックできるようにする特定の/推奨の方法はありますか? (DLLではなく)EXEをテストするときにNUnitを起動/構成する方法に関する基本的なことを見逃していませんか? このすべてをどのように達成するかの例の方向性を提供または指示できますか? これを行うには複数の方法があるかもしれないことを理解しているので、あなたの経験に基づいて特定の実装ガイドラインを探しています。
16 c#  testing  gui  nunit 

5
GUIがどのように機能し、いつ使い始めるべきかを誰かが説明できますか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は、事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は、議論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 約1か月間C ++を学んでいますが、先に進む前に、この退屈な質問を片付けたいと思います。GUIとは何ですか? コマンドラインプログラミングは基本的なものであることがわかっていますが、GUIをいじるのは楽しいと思います。 他にも約300万の質問がありますが、それらを保存します:D
16 c++  gui 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.