2009-10-05 36 views
25

Quy trình đằng sau việc tạo các tiện ích tùy chỉnh (sử dụng Qt) không trông ... tốt ... xấu xí là gì?Tạo tiện ích tùy chỉnh Qt "đẹp"

Tôi biết nó khá tầm thường để thực hiện một "widget tùy chỉnh" có nói, một ListBox và một pushbutton tát lại với nhau thành một, nhưng làm thế nào tôi sẽ đi về làm cái gì đó trông giống như thế này:

QAnalogWidgets

Tôi đã thực hiện một số mô hình thô về cơ bản sử dụng nền PNG (mà tôi đã làm trong Photoshop) với các yếu tố cơ bản như QLabels đặt trên đầu chúng, nhưng tôi không nghĩ đây là cách tôi nên làm . Tôi biết rằng Qt hỗ trợ CSS - đây có phải là những gì mọi người sử dụng để tạo ra các widget trông thực sự tốt không? Tôi có cần phải làm việc trong các phương pháp paintEvent không? OpenGL?

Cố gắng tìm kiếm bất kỳ thứ gì "tùy chỉnh tiện ích qt" có liên quan chỉ cho tôi rất nhiều thông tin về cách nhập chúng vào Nhà thiết kế, v.v. - vì vậy mọi khách hàng tiềm năng sẽ được đánh giá cao.

Cảm ơn!

Trả lời

28

Có cơ bản ba điều khác nhau để cố gắng, theo thứ tự được liệt kê:

  1. CSS/stylesheets. Biểu định kiểu, khi đủ mạnh cho nhu cầu của bạn, là tuyệt vời và cho phép thay đổi kiểu thời gian chạy. Xem số stylesheet examples.
  2. Custom painting. Bạn có thể làm hầu như bất cứ điều gì bạn muốn với bức tranh tùy chỉnh. Hỗ trợ của Qt cho PNG và SVG sẽ giúp ích rất nhiều. Bạn sẽ muốn xem qua số painting examples. Ngoài ra, hãy xem tài liệu QStyle để hiểu loại thông tin kiểu nào bạn nên xem xét.
  3. Custom styles. Nếu bạn cần tùy chỉnh toàn bộ ứng dụng, bạn có thể tạo ra phong cách riêng của mình tốt hơn. Không dành cho người yếu tim.

Về cơ bản, hãy sử dụng giải pháp dễ dàng nhất có thể phù hợp với bạn. Ngoài ra, hãy xem Qt Creator, nó được thiết kế độc đáo và tất cả các source code đều khả dụng.

+0

cảm ơn, tôi đã làm một chút với bức tranh tùy chỉnh trong Java Swing vì vậy tôi sẽ cung cấp cho rằng một cái nhìn qua – swanson

10

Dưới đây là hướng dẫn tạo Cửa sổ tùy chỉnh bằng cách xóa thanh Hệ thống trên cùng và vẽ phần cuối: http://qt.developpez.com/tutoriels/braindeadbzh/customwindow/.

Vì anh ấy đang phân lớp một QWidget, bạn có thể thực hiện việc này cho tất cả lớp con QWidget như QPushButton).

Khi bạn muốn sử dụng chúng trong QTDesigner, chỉ cần bao gồm lớp học của bạn và sau đó quảng bá một widget "cổ điển" cho tiện ích tùy chỉnh của bạn. Điều này có thể hữu ích: http://pepper.troll.no/s60prereleases/doc/designer-using-custom-widgets.html.

+3

cảm ơn, có vẻ đầy hứa hẹn ... nếu chỉ tôi nói tiếng Pháp: D nhưng mã bằng tiếng Anh nên tôi sẽ kiểm tra! – swanson

+0

Xin lỗi vì tiếng Pháp ... Tôi biết hướng dẫn này tồn tại bằng tiếng Anh (vì nó là bản dịch) nhưng tôi chỉ đánh dấu trang bằng tiếng Pháp. –

Các vấn đề liên quan