จะสร้างไดเร็กทอรีย่อยสำหรับโปรเจ็กต์ QtCreator ได้อย่างไร


102

ฉันต้องการแบ่งโปรเจ็กต์ Qt ของฉันออกเป็นหลาย ๆ ไดเร็กทอรีเพราะมันมีขนาดใหญ่มาก อย่างไรก็ตามเมื่อฉันคลิกที่เรียกดูใน QtCreator ไม่มี 'เพิ่มไดเรกทอรี' และไม่มีสิ่งนั้นใน 'เพิ่มใหม่' สามารถทำได้หรือไม่?


เกิดอะไรขึ้นกับการสร้างไดเร็กทอรีย่อยด้วยตัวจัดการไฟล์ของคุณ
Ariya Hidayat

2
ฉันสร้างไดร์ได้ด้วยตนเอง แต่ไม่เห็นในเบราว์เซอร์โครงการ
gruszczy

5
@Ariya อย่างน้อยคุณควรโหวตสิ่งนี้เพราะนี่เป็นคุณสมบัติที่มีอยู่ใน IDE ส่วนใหญ่และผู้คนจะถามเกี่ยวกับเรื่องนี้
Piotr Dobrogost

49
ด้วยความเคารพ แต่ Qt-Creator มีความสามารถในการใช้งาน (เกี่ยวกับอินเทอร์เฟซผู้ใช้) ในฐานะผู้พัฒนาหากคุณเห็นว่ามีคนถามวิธีเพิ่มไดเรกทอรีย่อยให้กับโครงการในฟอรัมสาธารณะคุณจะรู้ว่ามีปัญหาร้ายแรง IDE.
Edenshaw

4
@GabrielF ค่อนข้างง่าย ... ? ได้รับการแก้ไขแล้ว ... ? ทำไมเราไม่สามารถเลือก "สร้างไดเร็กทอรี" (หรือ "เพิ่มไดเร็กทอรี" เพื่อให้สอดคล้องกับผู้สร้าง) เหมือนใน IDE ส่วนใหญ่ มันเป็นฟังก์ชั่นพื้นฐานซึ่งแม้แต่บรรณาธิการที่เส็งเคร็งส่วนใหญ่ก็มี - คุณสามารถสร้างไดเร็กทอรีใน notepad ได้! ไม่ควรมี "วิธีการ" ในการทำงานพื้นฐานที่เรียบง่าย - มันควรจะชัดเจน
doc

คำตอบ:


40

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

Qt Creator แสดงสิ่งเหล่านี้ใน GUI ในรูปแบบที่ซ้อนกันและช่วยให้คุณสามารถเพิ่มไฟล์ลงในไฟล์ได้

เช่น

ใน project.pro

include(folder1/include.pri)

ใน folder1 / include.pri

HEADERS += MyClass.h
SOURCES += MyClass.cpp

ฯลฯ


ฉันสามารถทำการซ้อนจาก IDE ได้หรือไม่หรือต้องตั้งค่าไฟล์และไดร์ด้วยตนเอง
gruszczy

1
ฉันได้ดูอย่างรวดเร็วและฉันคิดว่าคุณต้องเพิ่มไฟล์รวมด้วยตนเอง แต่เมื่อเพิ่มไฟล์ใหม่ไปยังผู้สร้างโครงการ Qt จะช่วยให้คุณสามารถเพิ่มไฟล์เหล่านี้ลงในไฟล์รวมแทนที่จะเป็นไฟล์โครงการหลัก
นิค

3
ตกลงหวังว่าพวกเขาจะเพิ่มคุณสมบัตินี้ในเวอร์ชันใหม่
gruszczy

2
โปรดพิจารณาคำตอบของฉัน: stackoverflow.com/questions/24959959/…
Erowlin

24

คำตอบ: จะสร้างโฟลเดอร์หรือไดเร็กทอรีย่อยสำหรับโปรเจ็กต์ใน QtCreator ได้อย่างไร?

ก่อนหน้า QT Creator 3.1.x คุณสามารถคลิกขวาที่โปรเจ็กต์ของคุณ -> " เพิ่มใหม่ ... " และเปลี่ยนเส้นทางไปยังโฟลเดอร์ที่คุณต้องการ

Qt เพิ่มใหม่ ...

โฟลเดอร์ต้องมีอยู่ Qt จะไม่สร้างให้คุณ

เพิ่มคลาสใหม่และเปลี่ยนโฟลเดอร์เริ่มต้น Qt

Qt ดูแลเส้นทางในไฟล์. pro ของคุณ

Qt ดูแลเส้นทางในไฟล์. pro ของคุณ

Qt ดูแลเส้นทางในไฟล์. pro ของคุณ

แค่นั้นแหละ !


1
ควรสังเกตว่าจะใช้ไม่ได้เมื่อใช้โครงการ CMake ใน QtCreator
Éเตียน

@ เอเตียนคุณพูดถูก มันไม่ทำงาน เราควรทำอย่างไรในกรณีนี้?
pushandpop

20

เพิ่งมีปัญหาเดียวกันและพบคำตอบที่ค่อนข้างง่าย

ทั้งหมดที่คุณต้องทำเพื่อย้ายfile.cppไปnewFolderคือการเปลี่ยนชื่อไฟล์ (คลิกขวา -> เปลี่ยนชื่อ) newFolder\file.cppไป

Qt Creator จะย้ายไปยังโฟลเดอร์ใหม่และอัปเดต.proไฟล์โดยอัตโนมัติ


3
อย่าลืมว่าโฟลเดอร์ควรมีอยู่แล้วก่อนการเปลี่ยน
Anton

2
หากไฟล์ที่ย้ายอยู่ภายใต้การควบคุมของ GIT ผู้สร้าง Qt จะดูแลการเปลี่ยนแปลงที่จำเป็นใน GIT ด้วยหรือไม่
Silicomancer

@Silicomancer Git กำลังจัดการไฟล์ที่ย้ายให้คุณไม่ใช่ผู้สร้าง Qt คุณไม่ต้องทำอะไรนอกจากการย้ายไฟล์ผ่านการแก้ไขปัญหาที่อธิบายไว้นี้ (โดยใช้ "เปลี่ยนชื่อ") ใน Qt Creator หากคุณกำลังย้ายไฟล์ในระบบไฟล์ Git จะรับรู้สิ่งนี้ แต่เส้นทางของไฟล์จะไม่ถูกปรับใน.PROไฟล์ของผู้สร้าง Qt ...
R Yoda

@Silicomancer ใช่. หาก qtreacor รับรู้ว่าโปรเจ็กต์เป็นเวอร์ชันด้วย git มันจะทำซ้ำการกระทำทั้งหมด ซึ่งรวมถึงอย่างน้อยการสร้างไฟล์การลบเปลี่ยนชื่อและย้าย
Equilibrius

9

เริ่มต้นจากรุ่น 1.2.90 Qt Creator แสดงโฟลเดอร์ย่อยที่มีอยู่ในโฟลเดอร์ของโครงการเป็นสาขาในต้นไม้โครงการถ้าเพียงต้นไม้กรองตัวเลือกที่ไม่ได้ตั้งค่าต้นไม้ลดความซับซ้อน


7

ดูเหมือนว่าจะเป็นไปไม่ได้ที่จะสร้างไดเรกทอรีย่อยใน QT-CREATOR

ลองทำดังต่อไปนี้:

  1. สร้างไดเร็กทอรีย่อยจำนวนหนึ่งด้วย file-explorer หรือตามบรรทัดคำสั่งภายในโฟลเดอร์โปรเจ็กต์ (เช่นnet / , gui / , test / , data / ... )!
  2. ย้ายไฟล์ที่มีอยู่ไปยังโฟลเดอร์ใหม่เหล่านี้ และเปลี่ยนเส้นทางภายในไฟล์* .proj !
  3. สร้างไฟล์ใหม่จากจุดเริ่มต้นภายในโฟลเดอร์ใหม่ (โดยAddNew ... )!

... QT-CREATOR จะแสดงเฉพาะโฟลเดอร์ดังกล่าวซึ่งมีไฟล์ที่เขียนด้วยชื่อลงในไฟล์ * .pro หรือ a * .pri ที่ระดับรูท QT-CREATOR จะแยกความแตกต่างระหว่าง HEADERS, SOURCES, FORMS และไฟล์อื่น ๆ ภายในโฟลเดอร์รูทเหล่านี้คุณจะพบโฟลเดอร์ย่อยของโปรเจ็กต์ซ้ำ ๆ (ไม่ครอบคลุมในข้อความนี้กำลังแยกเป็นโครงการย่อย)


จริง. หากมีการดูโปรเจ็กต์ Qt ภายใน Qt Creator และpriโปรเจ็กต์ต่างๆถูกใช้อย่างเหมาะสม IDE จะแสดงสิ่งต่างๆในรูปแบบที่ซ้อนกัน อย่างไรก็ตามในระดับระบบไฟล์ไฟล์ทั้งหมด (ยกเว้นเมื่อใช้subdirและสร้างโปรเจ็กต์ย่อย) จะอยู่ในลำดับชั้นของไดเร็กทอรีเดียวกัน สิ่งนี้ทำให้สิ่งต่างๆค่อนข้างยุ่งยากเมื่อมีคนดูโครงการใน File Explorer (Windows Explorer, Thunar, Nautilus เป็นต้น) หากต้องการโครงสร้างไฟล์ที่เหมาะสมการทำสิ่งต่างๆด้วยตนเอง (ตามที่ @CWIMMER แนะนำที่นี่) เป็นวิธีเดียวที่จะไป
rbaleksandar

3

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


3

เมื่อคุณสร้างคลาสใหม่ใน Qt-Project ของคุณคุณสามารถเลือกเส้นทางในวิซาร์ดนี้และระบุโฟลเดอร์ใหม่เช่น DAL, BO, UI, ...


0

เมื่อไดเร็กทอรี 'data' ของฉันมีเพียงไดเร็กทอรีย่อย 'model' เพียงรายการเดียวมันก็ปรากฏเป็น "data / model" หลังจากเพิ่ม 'dao' เป็นไดเร็กทอรีย่อยอื่นมันจะแสดงข้อมูลด้วยลักษณะ +/- แบบดั้งเดิมเพื่อเปิดเผยโมเดลและ dao


0

นี่คือสิ่งที่ฉันได้ทำ:

  1. ในโฟลเดอร์โครงการ (นอก IDE) สร้างไดเรกทอรีที่คุณต้องการใส่รหัสของคุณและย้ายไฟล์ต้นฉบับของคุณไปยังไดเรกทอรีเหล่านั้น

    • สมมติว่าคุณใส่ "foo.cpp" และ "foo.h" ในไดเรกทอรี "foo"
  2. ในไฟล์ "* .pro" ของคุณไปที่แต่ละบรรทัดที่อ้างอิงไฟล์ต้นฉบับที่คุณย้ายและเพิ่มชื่อไดเร็กทอรีตามด้วย '/' หน้าชื่อไฟล์ต้นฉบับ

.pro ก่อนขั้นตอนที่ 2:

SOURCES += main.cpp \
foo.cpp

HEADERS  += \
foo.h \

.pro หลังจากขั้นตอนที่ 2:

SOURCES += main.cpp \ 
foo/foo.cpp

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