@TCH: Már, ha C-t használsz és nem C++-t, ugye? Vagy C++-ban is konvertiren? C++ C-ben nem láttam még Qt kódot, viszont GTK-hoz nincs hivatalos C++ interfész.@TCH: Hogyhogy? Lazarusban, Delphiben bezáródik, ha rábökök az OK vagy a kancsal gombra. Itt ha megbököd valamelyik gombot akkor visszaad egy response-t, de nyitva marad az ablak, amíg ki nem törlöd.@TCH: Meg ott annyi az egész, hogy If dialog_neve.Execute Then Begin és kinyitja, valamint csak akkor mászik be a lefuttatandó kódba, ha az OK-ra nyomtál (vagy ekvivalens műveletet végeztél, duplaklikk, ritörn, estébé). Lehet olyat csinálni. A deklarációnál meg kell adni milyen gombok legyenek rajta, és megnyomáskor mit adjon vissza. Akkor lehet ilyet csinálni, hogy beállítod, hogy a megnyitás 1-et a mégse 0-t adjon vissza, de én ragaszkodtam a standardhoz:GtkWidget* opendialog = gtk_file_chooser_dialog_new("Input file",
GTK_WINDOW(window), //hívó ablak
GTK_FILE_CHOOSER_ACTION_OPEN, //fájlmegnyitó dialógusablak legyen
GTK_STOCK_OPEN, 1, //A GTK_STOCK_OPEN az éppen használt nyelv "megnyitás" stringjét rakja a gombra, ha ráklikkelsz 1-et ad vissza
GTK_STOCK_CANCEL, 0, //ugyanaz mégsére, 0-t fog visszaadni
NULL); //listaterminátor
if (gtk_dialog_run(GTK_DIALOG(opendialog))) {
.
.
.
}
|