ภายใต้ ubuntu 16.04 ฉันได้รับข้อความต่อไปนี้
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged
เมื่อฉันเปิด zenity ด้วยคำสั่ง
zenity --text-info --filename=<filename>
สิ่งนี้ไม่ได้เกิดขึ้นภายใต้ 14.04 ฉันคิดว่าคำตอบนั้นเกี่ยวข้องกับการโพสต์นี้แต่โพสต์ไม่ได้อธิบายวิธีการใช้การแก้ปัญหาที่เสนอ มีใครช่วยอธิบายไฟล์ที่ฉันควรเพิ่มบรรทัดที่แนะนำ
คุณแก้ไขคำเตือนนี้โดยให้ GtkDialog พาเรนต์เป็น modal ฟังก์ชั่นที่เกี่ยวข้องคือ gtk_window_set_transient_for () (ซึ่งกำหนดให้หน้าต่างนี้อยู่ด้านบนสุดหรือข้ามไปอีกอันหนึ่งเสมอ) และอีกทางเลือกหนึ่งคือ gtk_window_set_modal () เพื่อทำให้เป็นกล่องโต้ตอบแบบกิริยา นี่คือสิ่งที่ผู้สร้าง GtkDialog ทำในท้ายที่สุด
WINDOW_ID=$(xprop -name
echo $ TITLE` | grep WM_CLIENT_LEADER | ตัด -d "#" -f2 | cut-c2-20) `แล้วฉันก็ลอง zenity --attach=$WINDOW_ID --text-info --filename=<filename>
แต่น่าเศร้าที่ฉันยังคงได้รับคำเตือน แย่ไปหน่อย แต่มันอาจมีประโยชน์สักวันหนึ่งที่จะรู้วิธีรับ id หน้าต่าง!
NULL
ฉันคิดว่ามันควรจะเรียกว่าอยู่ที่ไหนสักแห่งหลังจากการสร้างหน้าต่างกับชุดหน้าต่างแม่เพื่อ อย่างไรก็ตามฉันไม่make install
สามารถหาสิ่งที่ดีในท้องถิ่น (ฉันไม่สามารถหาเอกสารหรือบางอย่างเกี่ยวกับวิธีกำหนดค่าการติดตั้ง) ดังนั้นฉันจึงยอมแพ้ 2>/dev/null
จะต้องใช้สกปรก
zenity --help-general
ให้--attach=WINDOW Set the parent window to attach to
แต่ฉันไม่แน่ใจว่าจะใช้มันอย่างไร (Window คืออะไร?) บางทีมันอาจจะแก้ปัญหาของคุณได้