スレッドを使用してファイルをソートするために C (C++ でも) でプログラムを実装しています。入力標準 (Java の JFileChooser に相当) を介したパスを示さずに、ソートするファイルを選択するために C++ または C で GUI を実装する必要があります。 . どのチュートリアルをお勧めしますか? Qt について読んでいましたが、この IDE にはあまり詳しくありません。例があればとても助かります。
6 に答える
QTで非常に簡単:
void openFile()
{
QFileDialog::getOpenFileName( this, tr("Open Document"), QDir::currentPath(), tr("Document files (*.doc *.rtf);;All files (*.*)"), 0, QFileDialog::DontUseNativeDialog );
QString filename = QFileDialog::getOpenFileName(
this,
tr("Open Document"),
QDir::currentPath(),
tr("Document files (*.doc *.rtf);;All files (*.*)") );
if( !filename.isNull() )
{
qDebug( filename.toAscii() );
}
}
2つのオプションがあります。
QTを使用する場合は、QFileDialogを使用し、 OptionsフラグをQFileDialog::ShowDirsOnlyに設定する必要があります。
Windows専用にコーディングする場合は、Win32の一部であるFolderBrowserDialogクラスを使用できます。
はい、 QTを使用できます。QTのQDirクラスを使用してフォルダーを参照し、QFileクラスをファイル処理に使用できます。
例については、 QTのドキュメントを参照してください。たくさんあります。
また、QTreeView アイテムにマップできる QFileSystemModel もあり、内部実装で必要な多くのことを実行します。マルチスレッドで、並べ替えが可能で、他にも多くの優れた機能があります。ここでドキュメントを探します
プログラムが行うのが並べ替えだけで、UNIX環境で使用する場合は、プログラムをコマンドラインツールにして、そのプログラムを呼び出すためのスクリプト言語でGUIラッパーを作成することをお勧めします。コーディングが簡単で便利です(ツールの半分の価格で2つのツールを入手できます)。また、他のGUI環境への移植が容易になるだけでなく、配布も容易になります。
このシェルスクリプトは、ファイル選択ダイアログを開き、プログラム(yoursortという名前を作成)を実行します(テストされておらず、シェルスクリプトの作成に慣れていません。他のスクリプト言語を好みます。他のスタックオーバーフローの貢献者は、多くのことを見つけることができると確信しています。改善するために):
#!/bin/sh
FILE=`zenity --file-selection --title="Choose file to sort"`
if [ $? -eq 0 ]; then
yoursort -f "$FILE"
fi
Zenityは、シンプルなGUIダイアログを作成するためのコマンドラインツールであり、進行状況ダイアログも含まれています。
より高度なGUIを作成する場合は、tcl、Python、Rubyなどのスクリプト言語を使用してください。
Ruby GUIツールキットShoesは非常に簡単に習得でき、フローベースのレイアウトエンジン(Webページのようなもの)を備えています。QTでできることのほとんど(他の回答では好まれているようです)、または少なくともアプリケーションの99%に必要なすべてのことを行うことができます。シューズはGTKのレイヤーとして構築されているため、GTKと同じように移植性があり、すでにレイアウトされているほとんどの不平を言う作業で拡張できます(つまり、Xサーバー、フォントレンダリング、またはその他の疲労を直接処理する必要はありません)。そのようなもの)。
この投稿の残りの部分は一種のトピックですが、スクリプト言語の使用を提案したために誰かが私を格下げしたので、生のCまたはC ++でGUIをコーディングすることがほとんどの場合悪い考えである理由を動機付けなければならないと感じています(あなたがいない限り)それを行う方法を学ぶことを唯一の目的としてそれを行います)。
生のCまたはC++を使用してGUIを作成するのは、体に釘を打ち込むのが好きな人向けです。アプリケーションの外観を変更したり、新しい機能を追加したりする必要がある日は特に苦痛です。アプリケーション内の組み込みスクリプト言語として(tcl、lua、guile、pikeはアプリケーションに簡単に組み込むことができるように設計されています)、スクリプト言語を使用するか、作成したコマンドラインツールの周りにGUIラッパーを作成します。
XMLファイルなどのある種のGUI記述ファイルからGUIをロードできるGUIツールキット(GTK、QTなど)もたくさんあります。これらのファイルは、生のCまたはC ++を作成および変更するよりも、作成および変更(または、GUIビルダーを使用して作成および変更)する方がはるかに簡単です。
速度が重要であり、最後の手段として、 GUI用のCまたはC ++コードを生成するために高級言語を使用する場合は、生のコードを書くよりも変更に対してはるかに柔軟です。ただし、これを行う場合でも、生のCまたはC ++で記述した場合と同様に、GUIの最初のバージョンで苦痛を伴ううなり声の作業のほとんどを行う必要があります。TCL、M4、Rubyなどの言語は、この種のメタプログラミングに優れています。もう一つの最後の手段独自のGUIローダーを作成することで、GUI記述ファイルの構文をより専門的にすることができます。これにより、GUIツールキットで既製のGUIローダーよりも高速になります(UIウィジェットに既製のGUIが提供される場合もあります)。ローダーはサポートしていません)。これにより、GUIを変更して、生のCまたはC++でコーディングする柔軟性が高まります。
PS。QTはプリプロセッサを使用してC++でのGUIプログラミングの苦痛を和らげますが、それでも非常に低レベルであり、使用するのに不必要な苦痛を伴います。