2013-01-13 46 views
9

Tôi đang cố gắng để làm cho một ứng dụng trong C++ Qt với một bên như thế này:tab QTabWidget trên dọc, nhưng văn bản theo chiều ngang

Finder's sidebar

Nhưng khi đưa ra định hướng QTabWidget của sang Tây, nó làm cho văn bản theo chiều dọc. Làm cách nào để có văn bản ở bên trái, nhưng được căn chỉnh theo chiều ngang? Ps: Tôi không cần biểu tượng. Cảm ơn trước.

Trả lời

7

Bạn có thể sử dụng QListWidget để hiển thị "tab" (với một số mod để làm cho nó trông giống như bạn muốn) và QStackedWidget để xử lý chuyển đổi giữa các trang như tiện ích tab bình thường.

+0

tôi đã cố gắng tiếp cận QListWidget, nhưng làm thế nào để làm cho nó trông như thế? Stylesheets? Tôi không thấy nhiều sức mạnh tùy biến ở đó ... –

+0

Nếu bạn không cần biểu tượng, bạn cần tùy chỉnh những gì? Xóa đường viền và thay đổi nền và tạo một tô sáng nổi bật? Điều đó sẽ có thể thực hiện được với bảng định kiểu. – Eugene

+0

Tôi đã giải quyết nó bằng biểu định kiểu sau: http://pastebin.com/6UqpixtQ, rất cảm ơn bạn! –

4

Một chút "quảng cáo" để thực hiện WTFPLhere on assembla Mọi đóng góp sẽ được đánh giá cao.

exemple1 exemple2 exemple3

1

sử dụng QProxyStyle, chức năng này sẽ xoay 180 cho văn bản, và bạn có thể xoay 90.

void MyProxyStyle::drawItemText(QPainter* painter, 
           const QRect&, 
           int alignment, 
           const QPalette& palette, 
           bool enabled, 
           const QString& text, 
           QPalette::ColorRole textRole) const 
{ 
    painter->save(); 
    painter->translate(160,50); 
    painter->rotate(-180); 

    QCommonStyle::drawItemText(painter, 
           rectangle, 
           alignment, 
           palette, 
           enabled, 
           text, 
           textRole); 

    painter->restore(); 
} 
Các vấn đề liên quan