วิธีการเน้นปุ่มต่าง ๆ ในแถบเครื่องมือ GTK


9

ฉันเขียนแอปพลิเคชันโดยใช้ Python และ Glade แอพมีแถบเครื่องมือที่มีพื้นหลังสีเข้มและปุ่มแถบเครื่องมือแต่ละปุ่มมีภาพที่กำหนดเอง (เช่นไม่มีไอคอนหุ้นที่ใช้)

ฉันสังเกตเห็นว่าเมื่อใช้ไอคอนหุ้นแทนภาพที่กำหนดเองเป็นไอคอนเมื่อใดก็ตามที่เมาส์อยู่เหนือปุ่มปุ่มจะถูกเน้นซึ่งจะไม่เกิดขึ้นกับภาพที่กำหนดเองของฉัน

ธันเดอร์เบิร์ดดูเหมือนจะก้าวไปอีกขั้นและแทนที่จะเน้นไอคอนมันกลับสีของมันซึ่งใช้งานได้ดีกับธีมมืด (ดูด้านล่าง):

ปุ่มไม่ได้เน้นสีปกติ

ป้อนคำอธิบายรูปภาพที่นี่

ปุ่มถูกเน้นสีเมื่อโฮเวอร์, สีกลับด้าน

ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะทำให้รูปภาพไอคอนแบบกำหนดเองของฉันหรือปุ่มถูกเน้นบนโฮเวอร์ได้อย่างไร


คุณสามารถให้ตัวอย่างที่มันล้มเหลวได้หรือไม่? อาจเป็นปัญหาของชุดรูปแบบหรืออาจเป็นข้อบกพร่องของ GTK + หากไม่ได้ผลและคุณไม่ได้ติดภาพในแถบเครื่องมือแทนที่จะเป็นปุ่ม
dobey

รหัสที่code.launchpad.net/qreator ฉันตรวจสอบอีกครั้งและแถบเครื่องมือใช้ปุ่ม สิ่งเดียวที่ฉันทำคือการโหลดภาพสำหรับไอคอนเท่าที่ฉันสามารถบอกได้ นอกจากนี้สิ่งนี้อาจเป็นสิ่งที่ควรค่าแก่การกล่าวถึง: bazaar.launchpad.net/~dpm/qreator/trunk/view/head:/qreator/…
David Planella

ฉันคิดว่าคุณควรลบรหัสนั้น ดูเหมือนว่ามีบางสิ่งที่เพิ่มขึ้นอย่างรวดเร็วสำหรับ Gtk2 เพื่อทำสิ่งแถบเครื่องมือที่ขี้ขลาด
dobey

ฉันเพิ่มมันจริงๆหลังจากอ่านaskubuntu.com/questions/67362/ … - พวกคุณใช้ GTK Ubuntu One UI คุณทำมันแตกต่างกันหรือไม่?
David Planella

แผงควบคุม GTK + U1 เก่าคือ Gtk2 และการเปลี่ยนแปลงสีใด ๆ ที่ทำกับวิดเจ็ตที่กำหนดเองซึ่งติดตามสิ่งต่าง ๆ จากชุดรูปแบบ เราไม่ได้ใช้รหัสบิตนั้นฉันมั่นใจ แถบเครื่องมือใด ๆ ในตำแหน่งปกติภายใน GtkApplication ใน Gtk3 ควรทำงานในลักษณะที่คุณคาดหวัง
dobey

คำตอบ:


2

ปัญหานี้เป็นปัญหาของชุดรูปแบบ Ambiance มีไฮไลต์ แต่สีพื้นหลังสำหรับความสว่างจะเข้มกว่า หากธันเดอร์เบิร์ดแสดงไฮไลต์แสงและสลับสีของไอคอนนั่นเป็นเพราะมันใช้วิดเจ็ตที่กำหนดเองใน XUL (ซึ่งไม่ใช่ Gtk +) ซึ่งไม่ได้ติดตามธีม GTK + หรือไอคอนสำหรับทุกสิ่ง


ฉันเดาว่าฉันจะต้องยื่นข้อผิดพลาดต่อ Ambiance ขอบคุณ @dobey สำหรับตัวชี้!
David Planella
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.