Score:2

ฉันจะเปลี่ยนกลับจากการใช้ GTK 3 เป็น GTK 2 บน Kunbuntu 20.04 ได้อย่างไร

ธง in

ฉันใช้ OpenCPN 5.2.4 กับ OpenGL (จำเป็นสำหรับการซ้อนทับเรดาร์เหนือแผนภูมิ) ภายใต้ Kubuntu 20.04 ข้อผิดพลาด OpenCPN ที่ติดตามซึ่งเกี่ยวข้องกับการใช้ GTK3 ทำให้ OpenCPN ไม่สามารถปรับขนาดการแสดงผลได้อย่างเหมาะสมเมื่อใช้การปรับขนาดการแสดงผล (ฉันใช้ 200% เพื่อปรับขนาดบนจอแสดงผล 4k ขนาด 15.6 นิ้ว)

วิธีแก้ปัญหาชั่วคราวคือใช้ GTK2 แทน GTK3

คำถามของฉันคือ: ฉันจะเปลี่ยนกลับเป็น GTK2 ในระบบของฉันได้อย่างไร

คำแนะนำใด ๆ เกี่ยวกับวิธีดำเนินการจะได้รับการชื่นชมอย่างมาก

ข้อมูลระบบ:

  • ระบบปฏิบัติการ: Kubuntu 20.04
  • เวอร์ชันพลาสมาของ KDE: 5.18.5
  • เวอร์ชันกรอบงานของ KDE: 5.68.0
  • รุ่น Qt: 5.12.8
  • เวอร์ชันเคอร์เนล: 5.4.0-77-generic
  • ประเภทระบบปฏิบัติการ: 64 บิต
  • หน่วยประมวลผล: 4 à Intel® Core⢠i5-4570T CPU @ 2.90GHz
  • OpenGL: 3.0 เมซ่า 20.2.6

นโยบาย $ apt-cache opencpn 
opencpn: 
ติดตั้งแล้ว: 5.2.4.0-0~focal1 
ผู้สมัคร: 5.2.4.0-0~focal1 
ตารางเวอร์ชัน:
 *** 5.2.4.0-0~focal1 500 
500 ppa.launchpad.net/opencpn/opencpn/ubuntu focal/main amd64 แพ็คเกจ 
100 /var/lib/dpkg/สถานะ 5.0.0+dfsg-1 500 
500 nz.archive.ubuntu.com/ubuntu focal/universe แพ็คเกจ amd64
guiverc avatar
cn flag
ดาวน์โหลดซอร์สโค้ด ตรวจสอบให้แน่ใจว่าการเรียก GTK3 ทั้งหมดเข้ากันได้กับ GTK2 และปรับ/รีโค้ดการโทรที่ใช้ฟีเจอร์ GTK3 เพื่อจำกัดตัวเองAPI ของ GTK3 และ GTK2 แตกต่างกัน ดังนั้นคุณจึงไม่สามารถแทนที่ GTK3 ด้วยแพ็คเกจ GTK2 ได้... โปรแกรมทั้งหมดต้องได้รับการพอร์ตซึ่งเป็นงานจำนวนมาก (ทำไม MATE ใช้เวลานานในการพอร์ต เช่นเดียวกับ XFCE เป็นต้น... นับประสาอะไรกับ GNOME )
guiverc avatar
cn flag
ทางเลือกของคุณคือสร้างโปรแกรมเช่น 'wine' ที่รับสาย GTK3 ทั้งหมด และพยายามแปลงเป็นสาย GTK2 & เรียก GTK2 libs เพื่อทำในสิ่งที่ GTK2 ทำได้... สิ่งที่ทำกับความแตกต่างของ GTK2/GTK3 นั้นยาก ส่วนหนึ่ง; มันสามารถเพิกเฉยต่อสิ่งนั้น (ซึ่งอาจสร้าง segfaults หรือมีผลกระทบ *ไม่น่าเชื่อถือ* หรือ *ไม่เสถียร* ต่อโปรแกรมการโทร OpenCPN ในกรณีของคุณ) และจะไม่น่าเชื่อถือมากนักด้วยการปรับแต่งอย่างต่อเนื่องและในอนาคตเมื่อ GTK3 เปลี่ยนไป เกิดขึ้นในอนาคต...
N0rbert avatar
zw flag
ทำไมคุณถึงคิดว่าปัญหาเกิดจาก GTK2 คุณอาจใช้ OpenCPN เวอร์ชันที่ไม่ได้มาตรฐาน พื้นที่เก็บข้อมูลเริ่มต้นมี [เวอร์ชัน 5.0.0](https://packages.ubuntu.com/focal/opencpn) คุณมีปัญหากับ OpenCPN ขณะใช้เวอร์ชันเก่ากว่าหรือไม่ [จากปี 2019](https://changelogs.ubuntu.com/changelogs/pool/universe/o/opencpn/opencpn_5.0.0+dfsg-1/changelog) ซึ่งน่าจะใช้ GTK2 ? คุณใช้แหล่งการติดตั้งใดสำหรับ OpenCPN ผลลัพธ์ของ `นโยบาย apt-cache opencpn` คืออะไร
Sergio avatar
in flag
ปัญหาเกิดขึ้นกับ GTK3 (https://github.com/OpenCPN/OpenCPN/issues/1927#issuecomment-868587708) OpenCPN ที่เก็บเริ่มต้นมี 5.2.4 นโยบาย apt-cache opencpn opencpn: ติดตั้งแล้ว: 5.2.4.0-0~focal1 ผู้สมัคร: 5.2.4.0-0~focal1 ตารางเวอร์ชัน: *** 5.2.4.0-0~focal1 500 500 http://ppa.launchpad.net/opencpn/opencpn/ubuntu focal/main amd64 แพ็คเกจ 100 /var/lib/dpkg/สถานะ 5.0.0+dfsg-1 500 500 http://nz.archive.ubuntu.com/ubuntu focal/universe แพ็คเกจ amd64
Score:1
ธง cn
  • ดาวน์โหลดซอร์สโค้ด [เป็น OpenCPN 5.2.4]
  • ตรวจสอบให้แน่ใจว่าการโทร GTK3 ทั้งหมดรองรับ GTK2
  • ปรับ/เขียนโค้ดที่ใช้คุณสมบัติ GTK3 เพื่อให้จำกัดเฉพาะฟังก์ชัน GTK2 และทำการเรียก GTK2
  • รวบรวมรหัสอีกครั้ง

API ของ GTK3 และ GTK2 แตกต่างกัน ดังนั้นคุณจึงไม่สามารถแทนที่ GTK3 ด้วยแพ็คเกจ GTK2 ได้ (สิ่งที่ฉันสงสัยว่าคุณคาดหวังไว้)

ต้องมีการพอร์ตโปรแกรมซึ่งเป็นภาระงาน (ทำไม MATE ใช้เวลานานในการพอร์ต เช่นเดียวกับ XFCE เป็นต้น... นับประสาอะไรกับ GNOME เมื่อพอร์ตจาก GTK2 เป็น GTK3 และตอนนี้กำลังย้ายไปที่ GTK4)

หากไม่ชัดเจน - งานที่ต้องทำจะทำในโปรแกรม OpenCPN และ OpenGL เช่น. โปรแกรมผู้ใช้ปลายทางที่เรียก GTK3 ในปัจจุบัน - โปรแกรมที่ต้องการการเปลี่ยนแปลง

ระบบสามารถมี GTK3 และ GTK2 อยู่ร่วมกันได้ เช่น. ลูบุนตูของฉัน เปรี้ยงปร้าง ระบบมีการติดตั้ง libs ทั้ง Qt5, GTK3 และ GTK2 และจะอยู่ร่วมกันอย่างมีความสุข

  • แชท (ไคลเอนต์ IRC ที่ฉันเลือก) เรียก GTK2 libs
  • ชีวิต & วิวัฒนาการ (RSS & MUA ที่ฉันเลือก) เรียก GTK3 libs
  • เดสก์ท็อป Lubuntu LXQt ของฉันเป็นโปรแกรมเช่น แผ่นขนนก เรียกใช้ไลบรารี Qt5 เช่นเดียวกับเดสก์ท็อป KDE ของคุณ (แอป KDE จำนวนมากต้องการ KF5 ด้วย)

เป็นโปรแกรมของผู้ใช้ที่ต้องมีการเปลี่ยนแปลง คุณสามารถติดตั้งชุดเครื่องมือ/ไลบรารี GTK2 ทั้งหมดในระบบของคุณได้ แต่หากไม่มีสิ่งใดเรียกใช้ มันจะไม่ถูกใช้งาน

หมายเหตุ: ไม่มีมาตราส่วนใน GTK2 ดังนั้นฉันไม่เห็นสิ่งที่คุณหวังว่าจะบรรลุ

guiverc avatar
cn flag
FYI: ทำไมฉันถึงเลือกแอป... ฉันเคยเป็นผู้ใช้ GNOME เมื่อนานมาแล้ว (GTK2) วันที่ผ่านมา และแอปสำหรับผู้ใช้ปลายทางบางแอปก็ไม่ได้เลิกใช้...
Sergio avatar
in flag
ตกลงที่ชี้แจงหลายสิ่งหลายอย่างสำหรับฉัน ดูเหมือนว่าฉันจะต้องรอให้นักพัฒนา OpenCPN แก้ไขปัญหานี้ในการเปิดตัวในอนาคต มันเหนือความสามารถของฉันที่จะ 'recode' และ 'recompile' ตามที่แนะนำ ป.ล.: ในขณะเดียวกัน ฉันติดอยู่กับการย้ายระบบและการอัปเดตการแสดงผลที่ OpenCPN ไม่สามารถจัดการได้ (เปิดหน้าต่างไปยัง Kunbutu ด้วยจอแสดงผล 4k ขนาด 15.6 นิ้ว ที่ต้องการมาตราส่วนตั้งไว้ที่ 200% เพื่อให้สามารถใช้งานได้)

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา