2011-12-13 19 views
9

Các chương trình Gtk có thể có các chủ đề keybinding khác nhau bằng cách liên kết các khóa khác nhau với tín hiệu gtk, nhưng các chương trình qt không thể thực hiện điều đó ngay bây giờ.Có thể triển khai keybindings kiểu emacs trong tất cả các chương trình Qt (có thể là một plugin qt) không?

Vì plugin hỗ trợ Qt (như hầu hết loại thư viện này và ý tôi là Plugin cấp cao hoặc Phần mở rộng Qt) và ít nhất một số Plugin (Cấp cao) có thể được tải tự động bởi tất cả chương trình qt theo sth như ENV, có thể có keybindings toàn cầu (Emacs hoặc phong cách khác) (ít nhất là trong tất cả các khu vực đầu vào) bằng cách sử dụng qt plugin? Hay nói cách khác, có ai biết loại plugin cao cấp nào không?

Đoán của tôi là plugin đầu vào ngữ cảnh hoặc plugin (cầu nối) có thể truy cập. Đối với plugin ngữ cảnh đầu vào, tôi tự hỏi nếu điều này có thể làm việc với phương thức nhập vì afaik chỉ có một phụ trợ inputmethod có thể được kích hoạt cùng một lúc. Đối với plugin có thể truy cập, tôi chưa tìm hiểu cách tải plugin tự động.

Cảm ơn.

Trả lời

1

Bạn có thể install an event filter để chặn sự kiện quan trọng và sử dụng điều đó để chuyển đổi chúng thành other events.

Tôi nghĩ bạn đang sử dụng từ "trình cắm" theo nghĩa khác với Qt. Nó có các plugin cụ thể khác nhau - cho các codec hình ảnh, trình điều khiển SQL, v.v. - nhưng không có cơ chế "làm điều này cho tất cả các tiện ích" chung. Đối với điều đó, bạn sẽ phải nắm bắt tất cả các điểm sáng tạo của các tiện ích cấp cao nhất trong ứng dụng của bạn và thêm mã để cài đặt bộ lọc cho từng trường hợp.

+0

Còn phần tải thì sao? (Tôi không tìm thấy bất kỳ tài liệu về cách Qt dicide để tải các plugin ~~~) – yuyichao

+0

Mặc dù phần mở rộng thoes ĐƯỢC nạp trong hầu hết các chương trình qt (có hộp đầu vào) nhưng không phải trong skype. Có lý do gì không? – yuyichao

+0

Đó là ý tôi là "plug-in". (và câu hỏi của tôi chỉ là nếu có một loại plugin mà tôi có thể sử dụng.) Tôi nghĩ có lẽ khả năng truy cập hoặc plug-in inputcotext có thể hữu ích, nhưng tôi không biết cách/khi các plugin này được tải. Trên thực tế tôi khá chắc chắn một plugin inputcontext có thể làm điều này (cho bối cảnh đầu vào chỉ) nếu u r không sử dụng bất kỳ phương pháp đầu vào. (btw, cho skype có lẽ là vì skype không sử dụng phần tử qt chuẩn ~~) – yuyichao

0

Tôi bằng cách nào đó giải quyết vấn đề (cùng với this one) bằng cách sử dụng xkb, tức là chuyển hướng C-npfbae sang các khóa thích hợp, mặc dù tôi chưa thực hiện C-d redirection compatible with terminal EOF.

Tôi vẫn nghĩ rằng vấn đề (trong Qt) có thể được giải quyết bằng các plugin qtaccessible nhưng tôi chưa tìm ra cách để thực hiện công việc đó.

+0

Hm, không, không phải là cách giải quyết tốt ... Ví dụ: trong bản thân Emacs, tôi đang sử dụng «C-S-f» để di chuyển lựa chọn một char về phía trước. Nhưng bây giờ các mũi tên được tự do, vì vậy tôi liên kết với «S-AnArrow» một chuyển động giữa các splitscreens. Nếu tôi bị ràng buộc «C-S-f» với «S-» »cho một mức độ hệ thống, nó sẽ phá vỡ mọi thứ. –