2012-03-04 56 views
5

Tôi muốn QtextEdit trong ứng dụng của tôi là màu xanh lá cây vì vậy tôi thiết lập các stylesheet đểQTextEdit thay đổi màu nền cũng là màu sắc của thanh cuộn

background-color: rgb(109, 255, 99); 

Tuy nhiên điều này cũng thay đổi màu nền của thanh cuộn và thậm chí khi tôi nhấp nút chuột phải trong textedit menu được hiển thị cũng là màu xanh lá cây và đó không phải là những gì tôi mong đợi.

Tôi đang sử dụng Thiết kế Qt để thiết kế gui và sau đó tôi đã sử dụng uic để tạo tệp C++.

trong C++ nộp nó trông như thế này:

textEdit->setAutoFillBackground(false); 
textEdit->setStyleSheet(QString::fromUtf8("background-color: rgb(109, 255, 99);")); 
textEdit->setReadOnly(true); 

Bất kỳ ai biết làm thế nào để thiết lập màu nền duy nhất cho khu vực nơi văn bản sẽ là gì?

Cảm ơn

+0

tìm ra, thật đơn giản, tôi sẽ thêm câu trả lời bình thường ngay sau khi nó cho phép và đánh dấu nó được chấp nhận – Jan

Trả lời

9

Tất cả các đối tượng con của chỉnh sửa văn bản của bạn được thừa hưởng kiểu, vì vậy tất cả trẻ em (ví dụ menu ngữ cảnh) sẽ có một nền màu xanh lá cây.

Bạn nên chọn QTextEdit của bạn chỉ trong stylesheet của bạn, ví dụ:

textEdit->setStyleSheet("QTextEdit { background-color: rgb(109, 255, 99) }"); 

Lưu ý rằng bạn có thể thiết lập các kiểu ở cấp ứng dụng, quá, để tất cả của QTextEdit trong ứng dụng của bạn sẽ có nền bạn đã xác định:

qApp->setStyleSheet("QTextEdit { background-color: rgb(109, 255, 99) }"); 
+0

Cảm ơn bạn đã trả lời, đây chính xác là vấn đề là – Jan

+0

điều này dường như không hiệu quả với tôi nút vẫn còn màu - đã phải làm điều này: QPalette * palette = new QPalette(); bảng màu-> setColor (QPalette :: Base, QColor (0,0,0)); bảng màu-> setColor (QPalette :: Văn bản, QColor (128,128,128)); textEditor-> setPalette (* bảng màu); cho văn bản màu xám trên nền đen, màu này không có bất kỳ nút nào. Tôi nghĩ câu trả lời của bạn là đúng, nhưng có vẻ như bằng cách nào đó các nút được đưa vào lớp 'QTextEdit'. – osirisgothra

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