Tôi có cửa sổ bật lên (được tạo bằng loại WINDOW_POPUP) có chứa một số tiện ích con trên đó, bao gồm cả mục nhập văn bản. Vấn đề là các mục nhập không lấy được tiêu điểm khi tôi nhấp vào nó, vì vậy tôi không thể gõ bất cứ điều gì. Có cờ nào tôi phải đặt để cho phép cửa sổ lấy tiêu điểm bàn phím không?Cách lấy tiêu điểm bàn phím cho một cửa sổ bật lên Gtk.Window
6
A
Trả lời
-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
Bạn không thể sử dụng WINDOW_POPUP cho gtk-windows yêu cầu tiêu điểm. Thay vào đó bạn nên sử dụng một GWindow với loại GTK_WINDOW_TOPLEVEL và gọi chức năng tiếp theo (hoặc các phương pháp)
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);
này làm việc cho tôi ... tiếc là biểu tượng trong cửa sổ danh sách chớp mắt ngắn khi điều này 'popup' bị phá hủy
1
Mặc dù câu trả lời trước đó và tham chiếu GTK, có thể lấy tiêu điểm bàn phím khi sử dụng GTK_WINDOW_POPUP. Bạn cần phải kết nối với sự kiện "show" ...
GtkWindow *w = gtk_window_new(GTK_WINDOW_POPUP);
g_signal_connect(G_OBJECT(w), "show", G_CALLBACK(on_window_show), NULL);
... với một callback mà cố gắng để lấy bàn phím:
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);
}
}
đó làm việc cho tôi khá tốt.
Các vấn đề liên quan
- 1. Cách bật lên bàn phím Android "? 123"
- 2. EditText Trên Cửa sổ bật lên
- 3. Văn bản cửa sổ bật lên iPad - từ chứcFirstResponder không loại bỏ bàn phím
- 4. Chiều rộng cửa sổ bật lên Bootstrap cho cửa sổ bật lên-bên trong
- 5. đặt tiêu điểm của một cửa sổ popup mỗi khi
- 6. Cách lấy tiêu điểm cửa sổ/tab như cảnh báo()?
- 7. Cách đóng cửa sổ bật lên Liferay.util.openWindow?
- 8. Ngăn không cho bàn phím bật lên trên tiêu điểm hộp văn bản/nhấp chuột trong ứng dụng web iPad
- 9. NSPopover - Ẩn khi tiêu điểm bị mất? (nhấp vào bên ngoài cửa sổ bật lên)
- 10. WebView textarea không bật lên bàn phím
- 11. Cần trợ giúp để có cửa sổ bật lên Cửa sổ bật lên
- 12. Làm thế nào tôi có thể thực hiện một nút highlighten trên cửa sổ bật lên cửa sổ trên Mac bằng cách sử dụng bàn phím
- 13. Bộ chọn như inputview bên trong cửa sổ bật lên
- 14. Cửa sổ bật lên trong Java Swing
- 15. Python: Cửa sổ bật lên PyQt
- 16. Twitter OAuth qua cửa sổ bật lên
- 17. Selenium: Kiểm tra cửa sổ bật lên
- 18. Cửa sổ bật lên MVC-pop
- 19. Ngăn chặn thay đổi tiêu điểm cửa sổ
- 20. facebook Cửa sổ bật lên Sharer
- 21. Đóng cửa sổ bật lên Safari bằng cách sử dụng nút bấm trong cửa sổ bật lên
- 22. Android - Bàn phím không xuất hiện trong cửa sổ
- 23. Tiêu điểm bàn phím bị đánh cắp bởi Flash
- 24. pygtk đang chạy hai cửa sổ, cửa sổ bật lên và chính
- 25. Bật cửa sổ bật lên từ dịch vụ
- 26. Cách tạo cửa sổ bật lên trong Android?
- 27. Làm cách nào để tạo iframe bật lên trong cửa sổ bật lên Magnific?
- 28. Cửa sổ làm mới dành cho cha mẹ sau khi đóng cửa sổ bật lên
- 29. Làm thế nào tôi có thể theo dõi cửa sổ nào hiện tại có tiêu điểm bàn phím
- 30. Cách ẩn cửa sổ bật lên của URL trong UIwebview
Điều này sẽ lấy bàn phím độc quyền. Nhấp vào cửa sổ chương trình khác bằng chuột sẽ không chuyển tiêu điểm bàn phím vào chúng. Có thể có xung quanh, nhưng tôi không biết gì cả. –