C график интерфэйс дээр програмчлал. Qt ашиглан GUI үүсгэх

Сайхан өдөр! Энэ зааварт бид таны анхны GUI програмыг MS дээр үүсгэх болно. харааны студи. Энэ нь график програмуудад зориулсан нэгэн төрлийн "Сайн уу ертөнц" байх болно. Би үүнийг шууд хэлье Windows-ийн хэрэглээМаягт нь C# програмистуудын хувьд график программ (хэрэглэгчийн график интерфэйс бүхий программ) үүсгэх цорын ганц арга зам биш боловч энэ нь сурч эхлэхэд тохиромжтой газар юм. Ингээд бид Visual Studio-г эхлүүллээ.

Эхэлсэн үү? Дараа нь бизнес рүү! Бид үндсэн цэс рүү очоод доорх зурагт үзүүлсэн шиг "Файл - Шинэ - Төсөл" гэсэн зүйлийг сонгоно уу.

Гарч ирэх цонхонд:

  • зүүн талд "Загварууд - Visual C # - Windows" -ийг сонгоно уу;
  • үндсэн хэсэгт "Windows Forms Application" элементийг сонгоно уу;
  • цонхны доод хэсэгт төслийн нэрийг оруулаад дискэн дээрх байршлыг зааж өгнө.

Ерөнхийдөө доорх зурагт үзүүлсэн шиг.

Та юу хэрэгтэйг тодорхой зааж өгсөн үү? Дараа нь "OK" товчийг дарна уу. Одоо та үүнтэй төстэй зүйлийг харах хэрэгтэй (гол хэсгүүдийг тэгш өнцөгтөөр тодруулсан):

Дээрх зурган дээр би үндсэн хэсгүүдийг тэмдэглэсэн: дизайнерын хэсэг (зүүн дээд талд), шийдэл судлаачийн хэсэг (баруун дээд талд), шинж чанаруудын хэсэг (баруун доод талд). Эдгээр нь бидний хамгийн их хамтран ажиллах салбарууд юм.

Дизайнерын хэсэгт одоо хоосон "маягт" байгаа бөгөөд энэ нь цонх гэж нэрлэгддэг, энэ тохиолдолд манай програмын үндсэн цонх юм. Properties талбар нь дизайнерын сонгосон элементийн шинж чанаруудыг харуулдаг, энэ тохиолдолд манай маягт, харин шийдэл судлаач талбар нь төслийн файлууд, түүний дотор програмын маягтууд (цонх) -той холбоотой файлуудыг агуулдаг. Одоо маягтаа бага зэрэг өөрчилж, энэ эхний програмыг ажиллуулцгаая.

Үүнийг хийхийн тулд дизайнер дээрх маягтыг сонгоод (үүнийг хийхийн тулд та маягт дээр хулганы зүүн товчийг дарж болно) болон шинж чанаруудын блок руу очно уу, бид "Текст" гэсэн мөрийг олох болно (үг нь текст, бид хайж байна). зүүн баганад), доорх зурагт үзүүлсэн шиг.

Өргөдлийн үндсэн хэлбэрийн өмч "Текст"

Зүүн баганад нэрийг (өмчийн нэр), баруун баганад түүний утгыг харуулсныг анхаарна уу.

Энэ тохиолдолд бид текстийн шинж чанартай харьцаж байгаа бөгөөд түүний утга нь цонхны гарчигт харагдах тул одоо тэнд өөрийн гэсэн зүйлийг, жишээлбэл, доорх зурагт үзүүлсэн шиг "Үндсэн цонх" гэх мэт зүйлийг оруулъя.

Одоо та төслөө бүтээж, ажиллуулж болно. Үүнийг хийхийн тулд үндсэн цэс рүү очоод "Build - Build Solution" -ыг сонгоно уу. Дараа нь бид програмыг ажиллуулж, үүний тулд үндсэн цэсэн дэх "Дбаг хийх - Дибаг хийхгүйгээр ажиллуулах" хэсгийг сонгоно. Үүний үр дүнд та дараах цонхыг харах ёстой.

Дараагийн хичээл дээр бид үзэх болно энгийн ажилформ дизайнерын хамт, GUI элементүүдийг тохируулснаар энэ хичээл дуусч, бид анхны график програмыг бүтээж, бүтээж, эхлүүлсэн.

Бүгдээрээ сайн уу. Өмнөх хичээлүүд дээрээ би Borland C++ Builder орчинд консолын программ үүсгэх талаар ярьж байсан. Энэ хичээлээс эхлэн бид C++ хэлийг график программуудыг жишээ болгон ашиглан сурах болно. Хэн консол бүтээхийг сурахыг хүсч байна. "С++ хэл дээр консолын хэрэглээг бүтээх урлаг" номыг уншиж болно. Бидний анхны програм бол санамсаргүй тоог харуулах програм байх болно. Бид borlandyayu нээнэ, зүгээр л консол програм үүсгэхгүй. Ажилласны дараа дэлгэцэн дээр дараах маягт гарч ирнэ.

Дээд талд нь багаж самбар байх болно:

Баруун талд объектын байцаагч ба маягтын жагсаалт:

Бүрэлдэхүүн хэсгүүд (BASIC-аас ялгаатай) аль хэдийн таб-д хуваагдсан. Нэрээр нь таб дээр ямар төрлийн бүрэлдэхүүн хэсгүүдийг байрлуулахыг таахад хэцүү биш юм. Стандарт табыг нээж, бүрэлдэхүүн хэсгүүдийг минийх шиг маягт дээр байрлуулна уу:

Товчлуурыг Button1 гэж тэмдэглэнэ. Түүнийг өөрчлөх хэрэгтэй. Borland-ийн зүүн доод цонхонд бүрэлдэхүүн хэсгүүдийн шинж чанарыг харуулсан бөгөөд тэдгээрийг биднийх болгож өөрчлөх ёстой.

Гарчиг (Бичээс) товчлуур дээр "Үйлдвэрлэх" болгон өөрчилнө

Label1 шошгоны Caption шинж чанарыг Number болгон өөрчил

Edit1-д Text шинж чанар (засварт байгаа текст өөрөө) зүгээр л арилдаг.

Эдгээр залруулга хийсний дараа маягт нь минийх шиг харагдах болно.

Бид харааны хэв маягийг дуусгасан, дашрамд хэлэхэд Борляд дахь ихэнх өмчүүд BASIC эсвэл Delphi шиг харагдаж байна. Тэдэнтэй туршилт хий.

Одоо үйл явдлын талаар ярилцъя. Бүрэлдэхүүн хэсэг бүр үйл явдлуудтай бөгөөд тэдгээр нь тодорхой нөхцөл байдалд хүрсэн үед гүйцэтгэх кодыг агуулдаг. Жишээлбэл, товчлуурын хувьд бид товчлуур дээр дарахад Click үйл явдлын кодыг гүйцэтгэх болно.

Өнөөдөр бид зөвхөн Click үйл явдлыг ашиглах болно. Товчлуур дээр хоёр удаа дараад кодын цонх руу орно уу:

Товчлуурын Click үйл явдал автоматаар үүсгэгдсэн. Код нь консолын програм шиг буржгар хаалтны хооронд байрладаг. Бид код бичнэ:

Хүчингүй __fastcall TForm1::Button1Click(TObject *Sender) ( давхар ааа; //Процессорын үүсгэсэн дугаарыг энд оруулаарай String count; //Ижил тоог бичнэ, гэхдээ стринг санамсаргүй байдлаар багасгана; //Энэ нь шаардлагатай. тоо давтагдахгүй aaa=санамсаргүй (34)*43646; //Аливаа тоо үүсгэх count=FloatToStr (aaa); //FloatToString функцийг ашиглан тоог мөр болгон хөрвүүлэх Edit1->Text=count; //Мөрийн хувьсагчийг гарга. текстийн цонхонд)

Алгоритм нь энгийн бөгөөд бид бутархай тоог хадгалах хувьсагчийг зарлаж, тоон хувьсагчийг мөр хэлбэрээр зарладаг. Үнэн хэрэгтээ нэн даруй үүсгэсэн дугаарыг текст талбарт харуулах боломжгүй (алдаа гарах болно. Текстийг хүлээж байсан бөгөөд тоо хүлээн авсан) FloatToStr функцийг ашиглан бид дугаарыг мөр болгон хөрвүүлэн харуулах болно. Текст хайрцаг. Гаралтын хувьд бид Edit1 текстийн шинж чанар руу ( -> тэмдгийг ашиглан (vb дэх цэгтэй төстэй)) эргүүлж, тэнд текстийг харуулна. Одоохондоо ийм л байна.

Дашрамд хэлэхэд, дахин дүүргэх асуулт: хэн хурдан үржүүлдэг вэ компьютерийн вирусууд, Хятад уу, эсвэл туулай уу?


Сэтгэгдэл()

Витай

артёмка

"санамсаргүй болгох; //Энэ нь тоо давтагдахгүйн тулд шаардлагатай." Би давтсаар л байна. юу хийх вэ?

Андрей

"randomize();"-г ашиглах 2 сонголт байна. эсвэл 6-р мөрөнд функцийг төвөгтэй болгох, жишээ нь. илүү секунд нэмнэ

Андрей

"секунд" эсвэл хоёр псевдо санамсаргүй тоог секундээр хуваасны үр дүн - олон хүчин зүйл байх тусам тоо нь урьдчилан тааварлах боломжгүй болно.

артёмка Алексей (алекс13ш)

санамсаргүй байдлаар
Энэ нь програмыг асаахад тоонууд давтагдахгүй байх явдал юм
за, тэр нь. програмыг асаасан бол товчлуурыг хэд хэдэн удаа дар
1)5
2)47
3)86
энэ бол бүхэл тоогоор би
За тэгээд програмаа унтраагаад дахин асаавал товчлуурыг дараалан дарахад ижил дараалалтай ижил тоонууд гарч ирнэ.
Энэ нь санамсаргүй байдлаар хийгдсэн боловч үүнийг устгахгүй

Тэгээд юу ингэж давтагдаж байна
1)3
2)69
3)1
4)3
5)8
6)1
ЭНЭ нь санамсаргүй байдлаар сонгоход хамаарахгүй
Үүнээс зайлсхийхийн тулд Андрей аль хэдийн хариулсан))

Бэгзод

Миний компьютер дээр Visual c++.net байгаа. Би сурах бичиг, эх кодыг олж чадахгүй байна. Туслаарай pzhs.

Али05

Би номын дэлгүүрт Visual C ++.Net сурах бичиг "Nikita Kultin Programming Basics in"-ийг харсан. Microsoft Visual C++ 2010", энэ нь хэрхэн үүсгэхийг л харуулж байна график програмууд Windows (WinForms) доор.

Coolhacker Nintendo

Түүний "муу" нь юу болохыг би гайхаж байна уу?

Coolhacker

Материалаа зөв гаргаж өгөх чадваргүй, ноёд оо, та бүхнийг програмчлалын буруу хэв маягт дасгасан тохиолдолд хувьсагч/функцийн нэрсийг галиглаж бичнэ.

Эдвард Coolhacker

ОХУ-ын Боловсрол, шинжлэх ухааны яам

Холбооны улсын төсвийн боловсролын байгууллага

дээд мэргэжлийн боловсрол

"УФА улсын газрын тос

ТЕХНИКИЙН ИХ СУРГУУЛЬ"

Компьютерийн шинжлэх ухаан, инженерийн кибернетикийн тэнхим

Microsoft Visual Studio 2010 дээр GUI програм үүсгэх

Сургалтын тусламж

лабораторийн болон практик хичээлд зориулагдсан

чиглэлийн оюутнуудтай

230100 (09.03.01) "Мэдээлэл зүй, компьютерийн инженерчлэл"

Сургалтын хэрэглэгдэхүүн нь "Програмчлалын" хичээлийн онолын мэдээлэл, практик болон лабораторийн ажилд зориулсан даалгавруудыг агуулдаг.

Энэхүү гарын авлага нь 230100 "Мэдээлэл зүй, компьютерийн инженерчлэл" чиглэлийн багш нар, мөн чиглэлийн оюутнуудад зориулагдсан болно.

Эмхэтгэсэн: Габдуллина А.А., Урлаг. тэнхимийн багш VTIK

Дружинская Е.В., Урлаг. тэнхимийн багш VTIK

Шүүмжлэгч: Филиппов В.Н., доктор, тэнхимийн дэд профессор. VTIK.

1. Онолын мэдээлэл 4

1.1. Үндсэн ойлголт 4

1.2. -тай танилцах Windows програм Microsoft Visual Studio 2010 дээрх маягт 4

1.3. Маягт 7 хяналт

1.5. MessageBox 9 функц

1.6. TextBox Control 10

2. Практик даалгавар. Microsoft Visual Studio 2010 дээрх Windows Form програмын танилцуулга 12

2.1. Гүйцэтгэсэн ажлын үнэлгээний бүтэц 12

2.2. Практик ажил гүйцэтгэх журам 12

3. Лабораторийн ажил. Microsoft Visual Studio 2010 дээр програм хөгжүүлэлт 16

3.1. Лабораторийн захиалга 16

3.2. Даалгавар 1. Өгөгдсөн 16-р алхамаар функцийн хүснэгт, түүний утгыг заасан интервалд тооцоолох

3.3. Ганцаарчилсан даалгавар 19

3.4. Даалгавар 2. Боловсруулалт хоёр хэмжээст массив 21

3.5. Ганцаарчилсан даалгавар 27

  1. Онолын мэдээлэл

  1. 1.1. Үндсэн ойлголтууд

Мэдээллийн процессыг автоматжуулах нь юуны түрүүнд өгөгдлийн урсгалыг удирддаг график хэрэглэгчийн интерфэйс (GUI) бүхий програм хангамжийг хөгжүүлэх замаар илэрхийлэгддэг.

График хэрэглэгчийн интерфэйс (GUI) нь график дэлгэцийн бүрэлдэхүүн хэсэг (цонх, товчлуур, гүйлгэх баар гэх мэт) хэлбэрээр хэрэглэгчдэд үзүүлэх боломжтой системийн бүх объект, функцийг харуулахад суурилсан төхөөрөмжтэй хэрэглэгчийн харилцах хэрэгслийн систем юм.

Ихэнхдээ GUI-ийн интерфейсийн элементүүд нь метафорын үндсэн дээр хэрэгждэг бөгөөд тэдгээрийн зорилго, шинж чанарыг харуулдаг бөгөөд энэ нь бэлтгэлгүй хэрэглэгчдэд програмыг ойлгох, эзэмшихэд хялбар болгодог. Тиймээс хэрэглэгчийн ажил нь хяналтын объектуудыг агуулсан дэлгэцийн маягтууд болон боловсруулах үйлдлийн товчлуур бүхий хэрэгслийн мөрүүдээр хийгддэг.

Стандарт график хэрэглэгчийн интерфэйс нь хэд хэдэн шаардлагыг хангасан байх ёстой:

Програм хангамжийн бүтээгдэхүүнтэй хэрэглэгчийн ажлын мэдээллийн технологийг хадгалах;

Гадаад харилцааны түвшинд програмтай харилцдаг эцсийн хэрэглэгчдэд анхаарлаа хандуулах;

Нэг цэсийн мөрөнд 6-аас илүүгүй ойлголт, тус бүр нь 6-аас илүүгүй сонголтыг агуулсан "зургаан" зарчмыг хангах;

    график объектуудын стандартчилагдсан зорилго, боломжтой бол дэлгэцэн дээрх байршлыг хадгалах.

Объект хандалтат програмчлалын хувьд бид ангиуд болон объектуудтай харьцдаг. Объектууд нь нийлмэл өгөгдлийн төрөл юм: тэдгээр нь олон утгыг нэг нэгж болгон нэгтгэж, тэдгээр утгыг нэрээр нь бичиж хадгалах боломжийг олгодог. Өөрөөр хэлбэл объект нь шинж чанаруудын эрэмблэгдээгүй цуглуулга бөгөөд тус бүр нь нэр, утгатай байдаг. Объектод агуулагдах нэрлэсэн утгууд нь тоо, мөр зэрэг анхдагч төрлүүд эсвэл бусад объектууд байж болно.

Консолын бус програмуудыг боловсруулахдаа үндсэн ойлголт нь Маягт юм.

Маягт нь дизайны орчны хяналтыг байршуулах сав юм.

Properties - энэ элементэд хадгалагдсан мэдээлэлд хандах чадвар.

Арга гэдэг нь тухайн объектын хийж чадах үйлдлийн багц юм.

Үйл явдал нь объектоор хүлээн зөвшөөрөгдсөн үйлдэл (жишээлбэл, хулганаар товших, товчлуур дээр дарах) бөгөөд үүний хариуг програмчлах боломжтой, i.e. тухайн үйл явдалд объектын хариу үйлдэл.

Сүүлийн шинэчлэлт: 2019 оны 05/26

Xamarin.Forms-д визуал интерфэйс нь хуудсуудаас бүрддэг. Энэ хуудас нь Page ангийн объект бөгөөд дэлгэцийн бүхэл бүтэн зайг эзэлдэг. Үүнийг бид дэлгэцэн дээр харж байна гар утасхуудас юм. Програм нь нэг буюу хэд хэдэн хуудастай байж болно.

Хуудас нь байршлын контейнеруудын аль нэгийг контент болгон хүлээн авдаг бөгөөд энэ нь эргээд товчлуурууд болон текст талбарууд зэрэг стандарт дүрслэлийн элементүүд болон бусад байршлын элементүүдийг агуулдаг.

Өмнөх сэдвээр үүсгэсэн HelloApp төслийг авч үзье (эсвэл шинээр үүсгэх). Өгөгдмөлөөр, бүх интерфэйс нь App.xaml.cs файлд байрлах, одоогийн програмыг төлөөлдөг App ангид үүсгэгддэг:

Түүний анхдагч код нь:

Системийг ашиглах; Xamarin.Forms ашиглах; Xamarin.Forms.Xaml ашиглах; namespace HelloApp ( нийтийн хэсэгчилсэн анги Апп: Програм ( нийтийн App() ( InitializeComponent(); MainPage = new MainPage(); ) хамгаалагдсан хүчингүй болсон хүчингүй OnStart() ( // Таны програм эхлэх үед зохицуулна ) хамгаалагдсан хүчингүй OnSleep() ( / / Таны апп унтсан үед зохицуулах ) хамгаалагдсан хүчингүй болгох OnResume() ( // Таны програмыг ажиллуулах үед зохицуулах ) ) )

App анги нь үүсгэгчээс эхэлж, InitializeComponent() аргыг эхлээд дуудаж, объектыг эхлүүлж, дараа нь MainPage шинж чанарыг тохируулна. Энэ өмчөөр дамжуулан App класс тохируулагдана нүүр хуудаспрограмууд. Энэ тохиолдолд энэ нь MainPage.xaml болон MainPage.xaml.cs файлд тодорхойлсон ангилал болох HelloApp.MainPage ангиар тодорхойлогддог.

Гэхдээ энэ зам цорын ганц зам биш юм. Xamarin.Forms нь C# код эсвэл html-тэй төстэй xaml хэл эсвэл эдгээр аргуудын хослолыг ашиглан визуал интерфейс үүсгэх боломжийг танд олгоно.

C# кодоос интерфейс үүсгэх

StartPage гэж нэрлэх HelloApp төсөлд ердийн C# анги нэмье.

Мөн энэ ангид дараах агуулгыг тодорхойлно.

Xamarin.Forms ашиглах; нэрийн орон зай HelloApp ( анги StartPage: ContentPage ( нийтийн StartPage() ( Шошгоны толгой = шинэ Шошго() ( Текст = "Xamarin Forms-аас мэндчилж байна" ); this.Content = толгой; ) ) )

Энэ анги нь хуудсыг төлөөлдөг тул ContentPage ангиас удамшдаг. Бүтээгч нь хуудасны агуулга болгон тохируулсан текст бүхий шошгыг үүсгэдэг (энэ. Content = толгой).

Үндсэн хуудсыг нэрлэхийн тулд эхлэх хуудас, Програмын ангиллыг өөрчлөх:

Xamarin.Forms ашиглах; namespace HelloApp ( нийтийн хэсэгчилсэн анги Апп: Програм ( нийтийн App() ( InitializeComponent(); MainPage = new StartPage(); ) хамгаалагдсан хүчингүй болгох OnStart() ( // Таны програм эхлэх үед зохицуулах ) хамгаалагдсан хүчингүй болгох OnSleep() ( / / Таны апп унтсан үед зохицуулах ) хамгаалагдсан хүчингүй болгох OnResume() ( // Таны програмыг ажиллуулах үед зохицуулах ) ) )

MainPage шинж чанар нь одоо шинээр үүсгэсэн StartPage руу чиглэнэ.

Visual Studio нь хамгийн энгийн кодтой шинэ хуудасны анги нэмэхэд зориулагдсан бэлэн загвартай гэдгийг тэмдэглэх нь зүйтэй. Тиймээс шинэ хуудас нэмэхийн тулд шинэ элемент нэмэхдээ Агуулгын хуудас (C#) загварыг сонгох хэрэгтэй:

Энэ анги нь шийдлийн үндсэн төсөлд нэмэгдсэн (энэ тохиолдолд HelloApp).

Нэмэгдсэн хуудасны анги нь дараах кодтой байна:

Системийг ашиглах; System.Collections.Generic ашиглах; System.Linq ашиглах; System.Reflection.Emit ашиглан; System.Text ашиглах; Xamarin.Forms ашиглах; нэрийн орон зай HelloApp ( нийтийн анги Page1: ContentPage ( нийтийн Хуудас1() ( Агуулга = шинэ StackLayout ( Хүүхдүүд = ( шинэ Шошго ( Текст = "Сайн уу хуудас" ) ) ); ) ) )

Энэ анги нь мөн үндсэн ContentPage ангиас өвлөн авах бөгөөд дээр үүсгэсэн MainPage ангитай бараг ижил зохион байгуулалттай байх болно.

Мөн хэрэглээний ангид бид энэ хуудсыг эхлэл хуудас болгон тохируулж болно:

Xamarin.Forms ашиглах; нэрийн орон зай HelloApp ( нийтийн хэсэгчилсэн анги Апп: Програм ( нийтийн App() ( InitializeComponent(); MainPage = new Page1(); ) //........... ) )

5

Би Nintendo DS GUI системийн товчлуур, текст хайрцаг, шалгах хайрцаг гэх мэт олон өөр хэсгүүдийг хийсэн боловч дэлгэцэн дээрх бүх зүйлийг нэг дор зурж, бүх товчлуурыг нэг дор шалгахын тулд эдгээр ангиудыг нэг Gui ангид нуух арга хэрэгтэй байна. ямар нэг товчлуур дарагдсан эсэхийг шалгах. Миний асуулт бол бүх ангиудыг (товчлуур, текст хайрцаг гэх мэт) нэг GUI анги болгон зохион байгуулах хамгийн сайн арга юу вэ?

Энэ бол миний бодсон нэг арга, гэхдээ энэ нь буруу юм шиг санагдаж байна:

Засварлах:Би C++ ашиглаж байна.

Ангилал Gui ( нийтийн: хүчингүй болгох_бүгд (); хүчингүй зурах_бүгд() const; int add_button(Товчлуур *товчлуур); // Товчлуурын ID-г буцаана хүчингүй болгох_товчлуур(int button_id); private: Товчлуур *товчлууд; int тоон товч; )

Энэ код нь хэд хэдэн асуудалтай байгаа ч би юу хүсч байгаагаа танд өгөхийг хүссэн юм.

  • 5 хариулт
  • Эрэмбэлэх:

    Үйл ажиллагаа

2

Энэ асуулт миний нийтлэх гэж байсан асуулттай маш төстэй бөгөөд зөвхөн миний асуулт Sony PSP програмчлалд зориулагдсан болно.

Би хэсэг хугацаанд ямар нэг зүйл хайж байсан, би зарим ном, VTM-ээс зөвлөгөө авсан бөгөөд одоогоор энэ бол энгийн ui системийн тухай бүдүүлэг санаа юм.

Class uiElement() ( ... virtual void Update() = 0; virtual void Draw() = 0; ... ) class uiButton() public: uiElement (... virtual void Update(); virtual void Draw() ; ... ) class uiTextbox() public: uiElement ( ... virtual void Update(); virtual void Draw(); ... ) ... // Бусад ui элементүүдийн анги uiWindow() ( ... хүчингүй шинэчлэх (); void Draw(); void AddElement(uiElement *Element); void RemoveElement(uiElement *Element); std::list элементүүд; ... ) void uiWindow::Update() ( ... төлөө (жагсаалт :: iterator it = Elements.begin(); it != Elements.end(); it++) it->Update(); ... ) void uiWindow::Draw() ( ... төлөө (жагсаалт :: iterator it = Elements.begin(); it != Elements.end(); it++) it->Draw(); ... )

зарчим бол цонх болон наалдсан элементүүдийг бий болгох явдал юм Хэрэглэгчийн интерфэйстүүн рүү, харгалзах үндсэн функцуудаас зурах, шинэчлэх аргуудыг дуудна.

Зургийн кодтой холбоотой асуудал гарсан тул надад юу ч тохирохгүй байна. PC болон PSP дээрх янз бүрийн API-уудаар би OpenGL болон psp gu-н боодлын кодыг хайж байна.

Энэ тусална гэж найдаж байна.

0

Санаж байх хэрэгтэй нэг стратеги нь нийлмэл загвар байж болно. Доод түвшинд энэ нь бүх GUI объектуудыг (болон объектын цуглуулгыг) үүсгэсний дараа илүү хялбар зохицуулах боломжийг танд олгоно. Гэхдээ би GUI дизайнтай холбоотой юу ч мэдэхгүй, тиймээс ерөнхий санаа авах нэг газар бол одоо байгаа төслийн эх код юм. WxWidgets нь хүртээмжтэй платформ хоорондын GUI юм эх код. Төсөлд тань амжилт хүсье!

0

3

Сонирхсон хүмүүст зориулж миний нээлттэй эх сурвалж, DS-д зориулсан BSD лицензтэй GUI хэрэглүүрийг энд оруулав.

Subject2k-ийн хариулт маш сайн байна, гэхдээ би uiElement үндсэн ангид хүүхдийн интерфейсийн элементүүдийг агуулсан кодтой байхыг зөвлөж байна. Энэ бол миний Woopsie дээр дагаж мөрдсөн жишээ юм.

Хэрэв чи ҮгүйҮүнийг үндсэн ангидаа дэмжвэл текст хайрцаг, товчлуураас илүү төвөгтэй зүйлийг хэрэгжүүлэх гэж оролдох үед та ноцтой асуудалтай тулгарах болно. Жишээлбэл:

  • Хүснэгтийн мөрүүдийг сонгохдоо харилцан онцгой байдлыг хангадаг нэг эх UI элементийн дор бүлэглэсэн олон товчлуур хэлбэрээр загварчилж болно;
  • Радио бүлгүүд (цаг хугацааны явцад);
  • Scrollbars-ийг гулсагч/суваг элемент болон дээш/доош товчлуур хэлбэрээр дүрсэлж болно;
  • Гүйлгэх жагсаалтыг контейнер болон хэрэглэгчийн интерфэйсийн хэд хэдэн элемент болгон төлөөлж болно.

Түүнчлэн, DS нь 66 МГц процессортой, 4 МБ RAM-тай бөгөөд энэ нь таны програмыг хадгалах, ажиллуулахад хоёуланд нь ашиглагддаг гэдгийг санах нь зүйтэй (DS дискийг ажиллуулахын өмнө RAM-д ачаалагддаг). Та үүнийг үнэхээр суулгагдсан систем гэж үзэх хэрэгтэй бөгөөд энэ нь STL байхгүй гэсэн үг юм. Би Woopsi-ээс STL-г устгаад 0.5MB хэмнэж чадсан. Десктопын стандартын хувьд тийм ч их биш, гэхдээ энэ нь STL хог хаягдал хэрэглэдэг нийт боломжтой DS санах ойн 1/8 нь юм.

Би блог дээрээ хэрэглэгчийн интерфэйс бичих бүх үйл явцыг дэлгэрэнгүй тайлбарласан:

Энэ нь дэлгэцийг дахин зурахад миний бодож олсон хоёр алгоритмын тайлбарыг багтаасан бөгөөд энэ нь GUI үүсгэхэд төвөгтэй хэсэг юм (нэг нь зүгээр л тэгш өнцөгтүүдийг задалж, харагдах хэсгийг санах, нөгөө нь BSP модыг ашигладаг бөгөөд энэ нь илүү үр дүнтэй бөгөөд ашиглахад хялбар байдаг. ойлгох), оновчтой болгох зөвлөмж гэх мэт d.



Ачааж байна...
Топ