เลย์เอาท์ที่ขยายอัตโนมัติพร้อม Qt-Designer


217

ฉันใช้ Qt Designer

ฉันต้องการสร้างสิ่งQVBoxLayoutที่จะขยายโดยอัตโนมัติเพื่อเติมเต็มทั้งหน้าต่าง

รูปแบบของQVBoxLayoutซากศพคงที่

ฉันจะทำให้การQVBoxLayoutขยายและเติมทั้งหน้าต่างผ่านตัวออกแบบได้อย่างไร


หากคุณต้องการใช้รูปแบบใน Qt Designer โปรดอ้างอิงถึงคำแนะนำด้านล่าง: stackoverflow.com/questions/1508939/qt-layout-on-qmainwindow

คำตอบ:


366

หลังจากสร้างQVBoxLayoutQt Designer ของคุณแล้วให้คลิกขวาบนพื้นหลังของวิดเจ็ต / กล่องโต้ตอบ / หน้าต่าง (ไม่ใช่QVBoxLayoutแต่เป็นวิดเจ็ตหลัก) และเลือกLay Out -> Lay Out ใน Gridจากด้านล่างของเมนูบริบท QVBoxLayoutในขณะนี้ควรยืดเพื่อให้พอดีกับหน้าต่างและจะปรับขนาดโดยอัตโนมัติเมื่อหน้าต่างทั้งหมดมีการปรับขนาด


6
ขอบคุณฉันกำลังมองหาวิธีแก้ไขปัญหานี้เช่นกัน
Simon H.

35
ที่จริงแล้วคุณไม่จำเป็นต้องสร้างเค้าโครงกริดเลย แทนที่จะสร้าง QVBoxLayout ด้วยตัวเองให้ยกเลิกการเลือกรายการทั้งหมดและคลิกที่พื้นหลังของวิดเจ็ต จากนั้นเลือกโครงร่าง -> โครงร่างแนวตั้ง
Michal Kottman

3
@Michal Kottman: ใช้ได้เฉพาะเวลาที่ออกแบบเท่านั้น มันจะไม่เปลี่ยนเค้าโครงเมื่อผู้ใช้ปรับขนาดหน้าต่างในเวลาทำงาน
Jay

5
ทั้งกริดและเลย์เอาต์แนวตั้งใช้งานได้สำหรับฉันที่การออกแบบและรันไทม์
AndiDog

2
ฉันต้องการเพิ่มรายละเอียดเล็ก ๆ น้อย ๆ : หากคุณต้องการเพิ่มเค้าโครงที่ยืดตัวเองในหน้า QTabWidgetคุณไม่สามารถคลิกขวาที่พื้นหลังของหน้าได้ตามที่คุณต้องการเลือก QTabWidget ไม่ใช่แท็บที่เกี่ยวข้อง คุณจะต้องคลิกขวาบนฉลากแท็บดังแสดงในหน้าต่างการออกแบบและเลือกแล้วออกวาง -> ออกวางในกริด
มานูเอ Cipolla

15

ตามเอกสารประกอบจะต้องมีการจัดวางเลย์เอาท์ระดับบนสุด

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

คุณสามารถตั้งค่าได้โดยล้างการเลือกและคลิกขวาที่แบบฟอร์มและเลือกหนึ่งในเค้าโครงที่มีอยู่ในเมนูบริบท

เลย์เอาต์ Qt


2

ฉันพยายามหาคุณสมบัติ "พอดีกับหน้าจอ" แต่ก็ไม่มีเช่นนั้น

แต่การตั้งค่า "maxSize" ของวิดเจ็ตเป็น "บางจำนวนมาก" (เช่น 2000 x 2000) จะพอดีกับวิดเจ็ตกับพื้นที่วิดเจ็ตหลักโดยอัตโนมัติ


6
จะเกิดอะไรขึ้นกับเทคนิคนี้ใน MacBook Pro พร้อมจอแสดงผล Retina (2880x1800)
ta.speot.is

1
เพียงตั้งเป็นจำนวนสูงสุดที่จะยอมรับ (ซึ่งนักออกแบบแสดงให้ฉันเห็นคือ 16777215) และควรทำงานกับขนาดจอภาพ
อังเดร

0

เมื่อคุณเพิ่มเลย์เอาต์ของคุณพร้อมวิดเจ็ตอย่างน้อยหนึ่งอันแล้วให้เลือกหน้าต่างของคุณแล้วคลิกปุ่ม "อัปเดต" ของ QtDesigner อินเทอร์เฟซจะถูกปรับขนาดด้วยขนาดที่เหมาะสมที่สุดและเลย์เอาต์ของคุณจะพอดีกับหน้าต่างทั้งหมด จากนั้นเมื่อปรับขนาดหน้าต่างเค้าโครงจะถูกปรับขนาดในลักษณะเดียวกัน


ฉันกล่าวว่าเมื่อผู้ใช้ปรับขนาดทั้งหน้าต่างเค้าโครงแนวตั้ง (และเนื้อหาของมัน) จะยืดให้พอดี ฉันไม่สนใจว่าหน้าตาจะเป็นอย่างไรใน Qt Designer
Elazar Leibovich

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