पर कीबोर्ड फ़ोकस कैसे दें मेरे पास एक पॉप-अप विंडो है (WINDOW_POPUP प्रकार का उपयोग करके बनाई गई) जिसमें टेक्स्ट एंट्री सहित कुछ विजेट शामिल हैं। समस्या यह है कि जब मैं उस पर क्लिक करता हूं तो प्रविष्टि फोकस नहीं करती है, इसलिए मैं कुछ भी टाइप नहीं कर सकता। खिड़की को कुंजीपटल फोकस पाने की अनुमति देने के लिए मुझे कोई झंडा सेट करना है?पॉप-अप Gtk.Window
6
A
उत्तर
-1
#include <gtk/gtk.h>
static gboolean delete_event(GtkWidget *widget,
GdkEvent *event,
gpointer data)
{
g_print ("delete event occurred\n");
gtk_main_quit();
return TRUE;
}
static void destroy(GtkWidget *widget,
gpointer data)
{
gtk_main_quit();
}
int main(int argc,
char *argv[])
{
GtkWidget *window;
GtkWidget *windowpopup;
GtkWidget *button;
gtk_init (&argc, &argv);
/* create a new window */
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
windowpopup = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_transient_for(GTK_WINDOW(windowpopup),GTK_WINDOW(window));
gtk_window_set_destroy_with_parent(GTK_WINDOW(windowpopup),TRUE);
gtk_widget_show (windowpopup);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (delete_event), NULL);
g_signal_connect (G_OBJECT (window), "destroy",
G_CALLBACK (destroy), NULL);
/* Creates a new button with the label "Hello World". */
button = gtk_button_new_with_label ("Hello World");
g_signal_connect_swapped (G_OBJECT (button), "clicked",
G_CALLBACK (gtk_widget_destroy),
G_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window);
gtk_main();
return 0;
}
4
आप gtk-windows के लिए WINDOW_POPUP का उपयोग नहीं कर सकते हैं, जिस पर फ़ोकस की आवश्यकता होती है। इसके बजाय आप प्रकार GTK_WINDOW_TOPLEVEL के साथ एक विंडो हेतु चिह्न का उपयोग करें और अगले कार्य (या तरीकों)
GtkWindow *result = g_object_new(GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, NULL);
gtk_widget_set_can_focus(result, TRUE);
gtk_window_set_decorated(GTK_WINDOW(result), FALSE);
gtk_window_set_type_hint(GTK_WINDOW(result), GDK_WINDOW_TYPE_HINT_POPUP_MENU);
gtk_window_set_transient_for(GTK_WINDOW(result), main_top_level_window);
यह मेरे लिए काम किया बुलाना चाहिए ... दुर्भाग्य से खिड़की-सूची में आइकन कम ब्लिंक जब इस 'पॉपअप'
नष्ट हो जाता है
1
पिछले उत्तरों और जीटीके संदर्भ के बावजूद, GTK_WINDOW_POPUP का उपयोग करते समय कीबोर्ड फ़ोकस को पकड़ना संभव है। आप "शो" घटना से कनेक्ट करने के ...
GtkWindow *w = gtk_window_new(GTK_WINDOW_POPUP);
g_signal_connect(G_OBJECT(w), "show", G_CALLBACK(on_window_show), NULL);
... एक कॉलबैक कुंजीपटल हड़पने की कोशिश करता है उस के साथ की जरूरत है:
static void on_window_show(GtkWidget *w, gpointer user_data) {
/* grabbing might not succeed immediately... */
while (gdk_keyboard_grab(w->window, FALSE, GDK_CURRENT_TIME) != GDK_GRAB_SUCCESS) {
/* ...wait a while and try again */
sleep(0.1);
}
}
कि बहुत अच्छी तरह से मेरे लिए काम करता है।
संबंधित मुद्दे
- 1. gtk.window हमेशा शीर्ष स्तर
- 2. पॉपअप
- 3. पॉपअप
- 4. पॉपअप
- 5. पॉपअप
- 6. पॉपअप
- 7. पॉपअप को
- 8. विंडो पॉपअप
- 9. मैं पॉपअप
- 10. डब्ल्यूपीएफ पॉपअप
- 11. पॉपअप अवरोधक
- 12. pygtk दो खिड़कियां, पॉपअप और मुख्य
- 13. डब्ल्यूपीएफ पॉपअप: पॉपअप के चारों ओर सीमा कैसे लगाएं?
- 14. प्रदर्शन पुष्टि पॉपअप
- 15. एंड्रॉइड "कम बैटरी" पॉपअप
- 16. संदर्भ मेनू बनाम पॉपअप
- 17. आईफोन पॉपअप अलर्ट संदेश
- 18. पॉपअप विंडो को
- 19. Google प्लस एक पॉपअप
- 20. एंड्रॉइड छवि संवाद/पॉपअप
- 21. एंड्रॉइड पॉपअप विंडो
- 22. डब्ल्यूपीएफ पॉपअप नियंत्रण
- 23. जावास्क्रिप्ट पॉपअप - ब्राउज़र
- 24. एक WPF पॉपअप
- 25. क्रोम एक्सटेंशन: पॉपअप
- 26. एक पूर्णस्क्रीन WPF पॉपअप
- 27. पॉपअप विंडो, आईई 8
- 28. WPF पॉपअप विंडो
- 29. किसी इफ्रेम पॉपअप
- 30. फेसबुक FB.login() पॉपअप IE8
यह कीबोर्ड को विशेष रूप से पकड़ लेगा। माउस के साथ अन्य प्रोग्राम्स की खिड़कियों पर क्लिक करने से कीबोर्ड फोकस उन्हें हस्तांतरित नहीं करेगा। आसपास काम हो सकता है, लेकिन मुझे किसी के बारे में पता नहीं है। –