Tôi đang chơi xung quanh với một số đồ họa và tôi đã thực hiện chuyển động máy ảnh đơn giản bằng các phím mũi tên. Cách tiếp cận đầu tiên của tôi là ghi đè keyPressEvent
để làm điều gì đó như sau:Kiểm tra xem phím có bị Qt
switch(key)
{
case up: MoveCameraForward(step); break;
case left: MoveCameraLeft(step); break;
...
}
Điều này không hoạt động như tôi mong muốn. Khi tôi bấm và giữ, ví dụ, phím chuyển tiếp, máy ảnh sẽ di chuyển các đơn vị "bước" về phía trước, sau đó dừng lại một lúc và sau đó tiếp tục di chuyển. Tôi đoán rằng đây là cách sự kiện được tạo ra, để tránh nhiều sự kiện trong trường hợp của một chút dài bấm phím.
Vì vậy, tôi cần phải thăm dò ý kiến của bàn phím trong quy trình Paint()
của tôi. Tôi đã không tìm thấy làm thế nào để làm điều đó với Qt. Tôi đã nghĩ đến việc có một số map<Key, bool>
sẽ được cập nhật trong keyPressEvent
và keyReleaseEvent
và cuộc thăm dò ý kiến bản đồ đó trong Paint()
. Bất kỳ ý tưởng tốt hơn? Cảm ơn bạn vì bất kỳ thông tin chi tiết nào.
Điều này đặc biệt được khuyến khích vì tỷ lệ lặp lại bàn phím có thể được thiết lập bởi người dùng. Đây là cách duy nhất để đảm bảo nó độc lập với tỷ lệ đánh dấu nội bộ của bạn. – RedX
Có một chuỗi và ví dụ về điều này trong các diễn đàn qt: http://qt-project.org/forums/viewreply/135346/ – bobbaluba