แทนที่ไฟล์ GTK + โต้ตอบด้วยทางเลือกอื่น


26

มีวิธีใดบ้างในการกำหนดค่าโปรแกรม GTK + ให้ใช้กล่องโต้ตอบไฟล์อื่น?

การอ่าน บทความโบราณ เกี่ยวกับกล่องโต้ตอบเริ่มต้นและการเห็นความแตกต่างกับเวอร์ชันปัจจุบันไม่เป็นลางดีสำหรับการปรับปรุงในอนาคตอันใกล้

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

สำหรับ archlinuxจะมี FF สำหรับ KDE รุ่นที่ได้รับการติดตั้งแล้ว มันใช้งานได้ดีถ้าคุณอยู่ใน KDE และชอบปลาโลมารุ่นที่ถูกปล้น / อะไรก็ตาม แต่น่าเสียดายที่ดูเหมือนจะไม่เปลี่ยนตัวเลือกไฟล์ถ้าคุณไม่ได้ใช้ KDE

ในขณะที่ฉันอยู่ในการตั้งค่า openbox แบบกำหนดเอง Firefox จึงกลับมาใช้กล่องโต้ตอบ GTK + ที่ไม่ชอบ แต่โซลูชันนี้ใช้งานได้กับ Firefox เท่านั้นดังนั้นฉันต้องการวิธีล้างข้อมูลนี้ออกจากระบบของฉันทั่วโลก


1
หากฉันเข้าใจถูกต้องกล่องโต้ตอบ GTK ที่คุณมีใน Openbox จะไม่อนุญาตให้คุณพิมพ์ชื่อไฟล์หรือแก้ไขแถบตำแหน่ง? มาทำไม ฉันคิดว่าเป็นการดีกว่าถ้าโพสต์ภาพหน้าจอของกล่องโต้ตอบ GTK ในระบบของคุณเพื่อให้คนอื่นดู
clearkimura

@clearkimura มันมีแถบที่ตั้งอย่างน้อยก็ใช้เวลาส่วนใหญ่ (ฉันไม่สามารถระบุได้ว่าอะไรเป็นสาเหตุที่ทำให้เกิดการละเว้นอยู่บ่อยครั้ง .. ) จับจริงของฉันเป็นเวลาในการโหลดนานมากที่บางครั้งมันก็ต้องใช้เมื่อเปิดไดเรกทอรีขนาดใหญ่ (ไม่กี่ร้อยไฟล์ภาพ)
gandalf3

1
@clearkimura สำหรับฉันการนำทางไปยังไดเรกทอรีที่มีไฟล์รูปภาพประมาณ 1,000 ไฟล์โดยเฉลี่ยอยู่ที่ 100 kB ในกล่องโต้ตอบที่แสดงโดย gimp (GTK 2) สองสามตัวทำให้มันค้างไว้> 20 วินาที การนำทางไปยังไดเรกทอรีเดียวกันในโลมาโหลดทันที
gandalf3

คำตอบ:


8

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

คำอธิบายบางอย่าง

กล่องโต้ตอบ [... ] นำเสนอโดย GIMP (GTK + 2) ทำให้การแฮงค์นานกว่า 20 วินาที การนำทางไปยังไดเรกทอรีเดียวกันใน Dolphin โหลดได้ทันที

ค่อนข้างแปลกที่จะเปรียบเทียบตัวเลือกไฟล์ GTK + ของเครื่องมือแก้ไขรูปภาพกับเครื่องมือจัดการไฟล์ Qt (แทนที่จะเป็นเครื่องมือเลือกไฟล์ Qt) นอกจากนี้แอปพลิเคชันเหล่านี้ไม่ได้ใช้ชุดเครื่องมือเดียวกัน เห็นได้ชัดว่าสิ่งต่าง ๆ มีการจัดการที่แตกต่างกัน

มันมีแถบที่ตั้งอย่างน้อยส่วนใหญ่ (ฉันไม่สามารถระบุได้ว่าอะไรเป็นสาเหตุที่ทำให้เกิดการผิดพลาดทุกครั้ง .. )

สำหรับกล่องโต้ตอบ GTK + แถบตำแหน่งจะไม่ปรากฏขึ้นในขณะที่ดู "เพิ่งใช้แล้ว" ในตัวเลือกไฟล์ ในมุมมองนี้แม้ปุ่มCtrl+ Lทางลัดจะไม่ทำงาน นี่เป็นเหตุผลว่าทำไม OP ได้อ้างสิทธิ์ผู้เลือกไฟล์บางครั้งก็ไม่ใช้แถบตำแหน่ง

คำตอบโดยตรง

KGtkเป็นวิธีแฮ็คที่จะใช้กล่องโต้ตอบ KDE ในแอปพลิเคชัน GTK + มันได้รับการเปิดตัวครั้งแรกในช่วงกลางปี 2006 และมีอยู่บนKDE-Apps.orgเป็นต้นน้ำและยังผ่านแพคเกจ AUR

ในขณะที่เสียงนี้มีแนวโน้มที่ทราบว่าเจตนาการทำงานนี้คือการให้ดูชุดสำหรับ Qt และดี + การใช้งาน เป็นไปได้มากว่าไม่ได้แก้ไขปัญหาที่ช้าซึ่งผู้ใช้ถกเถียงกัน

คำตอบเพิ่มเติม (2015-11-23)

คำตอบเพิ่มเติมนี้จะแก้ไขปัญหาสองประการที่นำมาสู่คำถาม: ไดอะล็อก GTK + ที่ไม่ชอบ (ปัญหาการใช้งาน) และไดอะล็อกหยุดทำงานชั่วคราว (ปัญหาการตอบสนอง)

ต่อไปนี้เป็นรายงานข้อผิดพลาดที่พูดถึงปัญหาที่เกี่ยวข้องซึ่งเกี่ยวข้องกับ GTK +

  • รายงานข้อผิดพลาดของเดเบียนในปี 2551บ่นว่าตัวเลือกไฟล์ GTK + สามารถเปิดได้ช้าและชื่อพา ธ ไม่สามารถแก้ไขได้ในวิธีที่เร็วที่สุด

  • รายงานข้อผิดพลาดของ Kubuntu meta ในปี 2008 ที่อยู่ในกล่องโต้ตอบ GTK + นั้นไม่คุ้นเคยกับกล่องโต้ตอบของ KDE ดังนั้นจึงใช้งานยาก

  • คำถามในปี 2009จึงบ่นว่าการสืบค้นไดเรกทอรีที่มีไฟล์จำนวนมากผ่านเครือข่ายนั้นช้ามากโดยใช้กล่องโต้ตอบตัวเลือกไฟล์ GTK +

  • คำถาม SO ในปี 2011ได้ถามถึงวิธีกำหนดตัวเลือกไฟล์ GTK + ซึ่งเป็นไปไม่ได้ในกล่องโต้ตอบมาตรฐาน

  • รายงานข้อผิดพลาด GTK + 2.0 ในปี 2012มีปัญหากับการอัปโหลดไฟล์ผ่านทางเว็บเบราว์เซอร์และตัวเลือกไฟล์ GTK + 2 ช้าหรือแฮงค์เป็นเวลาสองสามนาที

  • มีการโพสต์คำถาม GD.SE ในปี 2014เพื่อถามวิธีการเปิดไฟล์อย่างรวดเร็วใน GIMP เนื่องจากไม่มีปุ่มเรียกดูหรือกล่องข้อความเพื่อแก้ไขเส้นทางไปยังไฟล์

ต่อไปนี้เป็นรายงานข้อบกพร่องที่พูดถึงปัญหาที่เกี่ยวข้อง (ปัญหาการตอบสนองที่สะดุดตา) ซึ่งเกี่ยวข้องกับ KDE

ไม่ว่าจะเป็นกล่องโต้ตอบ GTK + หรือกล่องโต้ตอบ KDE ปัญหาการตอบสนองจะไม่ใช่เรื่องแปลกและจะปรากฏเมื่อพบเงื่อนไขบางประการ (เช่นไอคอนที่ไม่ได้แคชเป็นต้น)

คำตอบเพิ่มเติม (2017-02-12)

เกี่ยวกับปัญหาการใช้งานกล่องโต้ตอบทั้ง GTK + และ KDE ได้รับการเปลี่ยนแปลงในช่วงหลายปีที่ผ่านมาในสภาพแวดล้อมเดสก์ทอปที่เกี่ยวข้อง

สำหรับไดอะล็อก GTK + จะใช้แถบเครื่องมือตำแหน่งเพื่อแสดงตามค่าเริ่มต้น อย่างไรก็ตามตอนนี้มันจะถูกซ่อนโดยค่าเริ่มต้นในชุดเครื่องมือเวอร์ชันใหม่

  • GTK + 2.X อนุญาตให้แก้ไขตำแหน่งโดยใช้ปุ่มCtrl+ Lทางลัดหรือปุ่ม "แก้ไขตำแหน่ง" UI

  • GTK + 3.X อนุญาตให้แก้ไขตำแหน่งโดยใช้ปุ่มCtrl+ Lลัด (ปุ่ม "แก้ไขตำแหน่ง" UI อาจไม่ปรากฏขึ้นเลย)

สำหรับกล่องโต้ตอบของ KDE คุณสมบัติเฉพาะคือ "ชื่อไฟล์:" ฟิลด์ข้อความที่สามารถมองเห็นได้เสมอที่ UI ครึ่งล่างและแถบตำแหน่งของแถบที่แปลงเป็นแถบเครื่องมือสถานที่เมื่อทำการแก้ไข

  • KDE 3.X อนุญาตให้แก้ไขตำแหน่งโดยใช้Ctrl+ Lหรือ/ปุ่มลัดหรือ "ชื่อไฟล์:" ช่องข้อความ (แถบตำแหน่งไม่สามารถแก้ไขได้โดยตรงในบางโปรแกรม)

  • KDE 4.X อนุญาตให้แก้ไขตำแหน่งโดยใช้Ctrl+ Lแป้นลัดหรือ "ชื่อไฟล์:" ช่องข้อความหรือใช้เคอร์เซอร์ของเมาส์เพื่อคลิกที่แถบพา ธ ตำแหน่ง

  • KDE 5.X อนุญาตให้แก้ไขตำแหน่งที่คล้ายกับ KDE 4.X

ในทางตรงกันข้ามไดอะล็อก Qt นั้นสามารถปรับแต่งได้และสามารถใช้สไตล์ไดอะล็อก GTK + หรือ KDE ก็ได้ รูปแบบการโต้ตอบอาจเปลี่ยนแปลงได้โดยวิธีใดวิธีหนึ่งดังต่อไปนี้

  • การกำหนดค่าด้วยตนเองเฉพาะโปรแกรม (โดย VLC มีเดียเพลเยอร์ ฯลฯ )

  • การกำหนดค่าด้วยตนเอง, ความกว้างของระบบ (โดยการตั้งค่า Qt, จนถึงขณะนี้สามารถใช้ได้กับโปรแกรมที่ขึ้นอยู่กับ Qt 4 ใน Ubuntu รุ่นเก่าเช่น 14.04)

  • การกำหนดค่าอัตโนมัติ, ความกว้างของระบบ (โดยการติดตั้งชุดเครื่องมือบางอย่างที่ตรวจพบโดยอัตโนมัติใน Ubuntu รุ่นใหม่เช่น 16.04)

แม้จะมีชุดเครื่องมือที่แตกต่างกันให้ประสบการณ์และสไตล์การโต้ตอบที่แตกต่างกัน แต่ชุดเครื่องมือที่กล่าวถึงทั้งหมด (GTK +, KDE และ Qt) ช่วยให้ผู้ใช้สามารถแก้ไขตำแหน่งในกล่องโต้ตอบตัวเลือกไฟล์

TL; DRจนถึงวันนี้ KGtk น่าจะเป็นวิธีเดียวในการแทนที่ GTK + dialog และจะต้องใช้ต่อแอปพลิเคชัน ไม่มีทางเลือกที่รู้จักกันจริง ๆ แล้วแทนที่ไดอะล็อกสำหรับเคสและระบบ มิฉะนั้นให้มองหาวิธีแก้ไขเพื่อให้ตัวเลือกไฟล์ GTK + โหลดเร็วขึ้น (นี่จะเป็นอีกคำถามหนึ่ง)


คำตอบของผู้ตอบ : คำตอบนี้ถูกเขียนขึ้นเป็นครั้งแรกเพื่อแก้ไขปัญหาการใช้งานและการตอบสนองของกล่องโต้ตอบไฟล์ใน GTK +, KDE และ Qt สิ่งต่าง ๆ อาจเปลี่ยนแปลงไปตั้งแต่นั้นมาและคำตอบนี้อาจเลิก ดังนั้นคำตอบนี้จึงกลายเป็นวิกิชุมชนเพื่อให้ทุกคนที่มีชื่อเสียงน้อยที่สุดสามารถปรับปรุงโพสต์นี้หรืออย่างน้อยตอนนี้เปิดให้แก้ไขชุมชนมากขึ้น


ขอบคุณสำหรับคำตอบ! ฉันไม่รู้ว่าทำไม แต่ในระบบของฉันไดอะล็อก kde / qt นั้นเร็วกว่ามาก / ตอบสนองได้ดีกว่าไดอะล็อก GTK สำหรับการใช้งานไดอะล็อก GTK มีพฤติกรรมแปลก ๆ ที่ฉันไม่คุ้นเคย / ไม่ชอบ (เช่นต้องกด Enter หลังจากแท็บเสร็จสิ้นซึ่งทำให้เกิดความล่าช้า 2-3 วินาทีก่อนที่ฉันจะพิมพ์อีกครั้ง) ฉันจะดู KGtk
gandalf3

คำตอบของคุณไม่สมเหตุสมผล "ช้า" ไม่สำคัญสำหรับ UI มันไม่ใช่การจำลองอนุภาค และ KDE ตัวหนึ่งอนุญาตให้แก้ไขเส้นทางได้เป็น GTK ตัวหนึ่งที่ไม่ยอมให้คุณทำอย่างนั้น
LtWorf

ในที่สุดฉันพยายามหาเวลาเพื่อปรับปรุงคำตอบโดยรวม ฉันยืนยันว่ากล่องโต้ตอบ KDE มีตัวเลือกเพิ่มเติมให้แก้ไขตำแหน่งในตัวเลือกไฟล์ดังนั้นอาจจะง่ายกว่า GTK +
clearkimura

6

ตั้งแต่ประมาณปี 2016 คำตอบคือใช่ ! อย่างน้อยสำหรับการใช้ตัวเลือกไฟล์ KDE กับแอพ GTK3

นักพัฒนา Gtk + เรียกสิ่งนี้ว่า " native file choosers " สำหรับ "sandboxed applications" ในขณะที่เป้าหมายหลักของ Flatpak ก็คือทำให้มันสามารถใช้ Windows ได้ อย่างไรก็ตามคุณยังสามารถใช้สิ่งนี้สำหรับแอปพลิเคชันที่ไม่ใช้ทราย / แบนแพกโดยใช้เคล็ดลับ:

  1. ติดตั้งxdg-desktop-portal-kdeแพคเกจ: Arch Linux , Debian , Fedora , KDE Neon , Ubuntu ( ลิงก์การติดตั้งโดยตรง )
  2. ถ้าคุณไม่ได้จริงโดยใช้ KDE, แก้ไข/usr/share/xdg-desktop-portal/portals/kde.portalและเพิ่มมูลค่าของการ$XDG_CURRENT_DESKTOPแยกจากกันโดยเซมิโคลอนกับUseIn=KDEเส้น (เช่น: UseIn=KDE;xfce)
  3. เพิ่มบรรทัดGTK_USE_PORTAL=1ลงใน~/.pam_environmentเพื่อให้ GTK ทำตัวเหมือนอยู่ในสภาพแวดล้อมที่ถูกขัดจังหวะ
  4. ออกจากระบบและกลับเข้ามาใหม่เพื่อใช้การเปลี่ยนแปลงเหล่านี้

ฉันควรจะเพิ่มว่าสิ่งนี้จะไม่ทำงานสำหรับแอปที่ใช้คลาสสิกGtkFileChooserDialogหรือGtkFileChooserWidgetAPI: สิ่งเหล่านี้จะเปิดเผย GtkWidgets พื้นฐานให้กับแอปพลิเคชันซึ่งจะไม่สามารถใช้งานได้เมื่อแสดงไฟล์ตัวเลือกไฟล์โดยใช้ GTK ดังนั้นเพียงGtkFileChooserNativeและGtkFileChooserButtonจะทำงานและถ้าคุณเห็นแอป GTK ยังคงใช้ตัวเลือกไฟล์ GTK หลังจากทำตามขั้นตอนข้างต้นแล้วคุณอาจต้องการส่งแพตช์ให้พวกเขา ;-)
ntninja

0

ฉันพบคำแนะนำบางอย่างเกี่ยวกับการแทนที่กล่องโต้ตอบ GTK ด้วยกล่องโต้ตอบ QT:

https://wiki.archlinux.org/index.php/Uniform_look_for_Qt_and_GTK_applications#QGtkStyle

ภายใต้ "เคล็ดลับและเทคนิค" มี "กล่องโต้ตอบไฟล์ KDE สำหรับแอปพลิเคชัน GTK +"

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