8

UbuntuのC ++で簡単なファイルを開くダイアログを実装するのを手伝ってくれる人がいるかどうか疑問に思っていました。GUI に OpenGL を使用していますが、プログラムのロード時にユーザーがファイルを選択できるようにしたいと考えています。gtkmm と wxWidgets を試してみましたが、やりたいことに対して複雑すぎるようです。

4

4 に答える 4

7

ファイルを選択するだけの場合は、別のプログラムを起動してそれを行います。@ Dummy00001 がコメントで述べたzenity --file-selectionように、子プロセスとして開始し、その stdout を読み取ることができます。

char filename[1024];
FILE *f = popen("zenity --file-selection", "r");
fgets(filename, 1024, f);

または、タスクを実行する独自のプログラムを作成することもできます。そうすれば、UI を好きなようにカスタマイズできます。

于 2015-05-25T05:52:53.850 に答える
0

ここに、zenity を使用したより完全なコードがあります。

const char zenityP[] = "/usr/bin/zenity";
char Call[2048];

sprintf(Call,"%s  --file-selection --modal --title=\"%s\" ", zenityP, "Select file");

FILE *f = popen(Call,"r");
fgets(Bufor, size, f); 

int ret=pclose(f);
if(ret<0) perror("file_name_dialog()");

return ret==0;//return true if all is OK
于 2020-05-13T10:04:27.947 に答える