2014-07-13 17 views
5

Tôi đang sử dụng Qt 5.3.0. Khi tôi áp dụng một số màu nền trên trạng thái kiểm tra của QPushButton, nút sẽ được lấp đầy với các chấm màu xám (trên nền màu tôi muốn) khi nó được chọn.Làm cách nào để kiểm tra trạng thái đã kiểm tra của QPushButton để xóa các chấm màu xám?

Đây là một chương trình thử nghiệm nhỏ (với QtCreator nhưng nó cũng có thể được thực hiện với mã hóa): 1, tạo ra một ứng dụng qt 2, kéo theo một QPushButton, đặt nó bằng phẳng và checkable 3, thêm những dòng này trước w.show()

w.setStyleSheet("\ 
       QPushButton { \ 
        color:white; \ 
       } \ 
       QPushButton:checked{\ 
        background-color: rgb(80, 80, 80);\ 
       }\ 
       QPushButton:hover{ \ 
        background-color: grey; \ 
        border-style: outset; \ 
       } \ 
       "); 

4, chạy ứng dụng và kiểm tra các nút

Bạn sẽ thấy nút quay sang chấm nhưng tôi cần vào nút kiểm tra để được trong màu rắn như rgb (80 , 80, 80). Tôi đã bỏ lỡ điều gì đó?

Trả lời

13

Tôi có thể xóa các dấu chấm bằng cách chỉ cần đặt border: none; trên thuộc tính QPushButton:checked của biểu định kiểu.

On ví dụ của bạn, nó phải là như thế này:

w.setStyleSheet("\ 
       QPushButton { \ 
        color:white; \ 
       } \ 
       QPushButton:checked{\ 
        background-color: rgb(80, 80, 80);\ 
        border: none; \ 
       }\ 
       QPushButton:hover{ \ 
        background-color: grey; \ 
        border-style: outset; \ 
       } \ 
       "); 

Và ở đây bạn có thể xem kết quả khi nút được kiểm tra:

enter image description here

+0

lớn cảm ơn! làm sao bạn nảy ra ý tưởng tắt biên giới? – h5nc

+6

Trên trang đó: http://qt-project.org/doc/qt-4.8/stylesheet-reference.html có Cảnh báo: "Nếu bạn chỉ đặt màu nền trên QPushButton, nền có thể không xuất hiện trừ khi bạn đặt thuộc tính đường viền thành một số giá trị. Điều này là do, theo mặc định, QPushButton vẽ một đường viền gốc hoàn toàn trùng lặp màu nền. " và tôi nhớ rằng trong một số trường hợp, loại bỏ biên giới giải quyết được vấn đề của tôi. Tôi không thể nói cho bạn biết chính xác tại sao, nhưng nó hoạt động. –

+0

Cảm ơn bạn đã trả lời và liên kết đến tham chiếu. Thực sự đã cứu tôi hôm nay! – satishgoda

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