Bismillahirrahmanirrahim. Tulisan ini adalah bentuk PDF dari http://malsasa.wordpress.com/2013/08/03/pemroraman! "t!#!"stackedla$out!dan!"combobo%!untuk!window!la$erin/. Saya ingin membuat program yang bisa layering. Saya tidak tahu istilah resmi untuk ini tetapi bayangkanlah aplikasi GUI yang jika satu tombol diklik, maka sebagian atau seluruh isi jendela berubah jadi susunan lain. Anda sering melihatnya di aplikasi yang tidak seperti Word, tidak seperti Exel, tidak seperti !otepad, tidak seperti "ire#ox. $ereka statis. Anda sering melihatnya ketika Anda menginstal aplikasi di Windo%s. &ika Anda klik !ext'Bak, sebagian isi jendela berubah. (ang seperti itu yang saya inginkan. )ali ini saya berhasil membuatnya dengan meman#aatkan *Staked+ayout dan *,omboBox. Sayang, saya hanya bisa memakai *,omboBox bukan *-ushButton, padahal yang saya maukan adalah *-ushButton. .etapi tidak apa. Ini insya Allah menambah pengetahuan kita dalam membuat aplikasi *t. Wujud Program yang Diinginkan
-okoknya, tampilan dari satu jendela berubah total jika saya memilih salah satu opsi tampilan dari / yang ada. Sederhana saja. Saya hanya memasukkan tombol dalam setiap *"rame yang masing0masing *"rame itu bisa dipanggil ke atas 1makanya saya kasih nama layering2 dengan ombo box. Daftar Kea! Qt yang Di"akai 3. *4ialog 5 dipakai untuk membuat jendela tertinggi 6. *7Box+ayout 5 dipakai untuk membuat kontainer yang menampung setiap blok'grup dari tombol 8. *-ushButton 5 dipakai untuk membuat tombol /. *"rame 5 dipakai untuk menggantikan *GroupBox dalam hal menampung tombol0 tombol jadi satu blok'grup. 9. *Staked+ayout 5 dipakai untuk membentuk layer:layer tampilan yang setiap layernya bisa berisi %idget apa saja. ;. *,omboBox 5 dipakai untuk me%akili masing0masing layer dan untuk s%ithing antarlayer. Daftar #et$od Qt yang Di"akai 3. addWidget 0< dipakai oleh *7Box+ayout, *Staked+ayout 6. set$inimumSi=e 0< dipakai oleh *"rame 8. set+ayout 0< dipakai oleh *"rame dan *4ialog /. set$aximumWidth 0< dipakai oleh *-ushButton 9. set"rameShado% 0< dipakai oleh *"rame untuk membentuk bayangan> opsi0opsinya adalah *"rame??@aised, *"rame??Sunken, dan *"rame??-lain ;. addItem 0< dipakai oleh *Staked+ayout untuk membuat opsi0opsi yang bisa diklik. -ersis saat Anda memilih #ont di Word. A. set"rameShape 0< dipakai oleh *"rame untuk membentuk %ujud panel apakah itu timbul atau tenggelam> opsi0opsinya adalah *"rame??Styled-anel Bdipakai oleh de#ault0nya *t ,reator GUI BuilderC, *"rame??Box D. onnet 0< dipakai di antara *,omboBox dengan *Staked+ayout. Qt Creator dan Kode Kode Program Sama saja dengan ngite kemarin, hanya ada main%indo%.pp yang paling penting. &ika bingung dengan kode *t, silakan merujuk ke tulisan *t sebelum ini. #include "mainwindow.h" #include "ui_mainwindow.h"
Dialog::Dialog() { QVBoxLayout *mainlayout new QVBoxLayout! QVBoxLayout *layouta new QVBoxLayout! QVBoxLayout *layout" new QVBoxLayout! QVBoxLayout *layoutd new QVBoxLayout! Q#u$hButton *tom"ola new Q#u$hButton("%")! Q#u$hButton *tom"ol" new Q#u$hButton("B")! Q#u$hButton *tom"olc new Q#u$hButton("&")! Q#u$hButton *tom"old new Q#u$hButton("D")! Q'(ame *)(amea new Q'(ame! Q'(ame *)(ame" new Q'(ame! Q'(ame *)(amed new Q'(ame! Q*tac+edLayout *$tac+ia new Q*tac+edLayout! Q&om"oBox *com"o new Q&om"oBox!
connect(com"o1 *.9:%L(acti;ated(int))1 $tac+ia1 *L<=($et&u((ent.ndex(int)))! > %nai!i! Kode Program Sedikit saja sebenarnya yang istime%a dari program ke0/ ini. ,ukup tahu hal ini maka Anda bisa memodi#ikasi program menjadi lebih istime%a. S%&' com"o,-add.tem(t(("%"))! com"o,-add.tem(t(("B"))! com"o,-add.tem(t(("&"))! com"o,-add.tem(t(("D"))! 9unanya untu+ menam"ah+an o6$i,o6$i 6ada com"o "ox. D'% connect(com"o1 *.9:%L(acti;ated(int))1 $tac+ia1 *L<=($et&u((ent.ndex(int)))! Ini sangat istime%a. Inilah inti dari pemrograman *t yakni SIG!A+ dan S+E.. $ethod onnet12 ini adalah suatu penghubung antara objek yang mengeluarkan SIG!A+ dan objek yang menerimanya yaitu memiliki S+E.. Ini maksudnya jika suatu objek mengeluarkan SIG!A+ tertentu maka objek satunya melakukan #ungsi tertentu. Itu saja. 4an inilah yang saya pakai untuk mengendalikan layer di dalam *Staked+ayout dengan menggunakan *,omboBox. )ita pun pasti akan menggunakannya dalam mengendalikan objek lainnya dengan tombol atau dengan objek lainnya pula. )arena itu, inilah inti dari pemrograman *t. com"o ,- o"?e+ da(i Q&om"oBox $tac+ia ,- o"?e+ da(i Q*ta+edLayout (a!i %k$ir )angkuman 3. +ayering dilakukan dengan *Staked+ayout karena ia mengakomodasi #rame0#rame sebagai layer dan mampu mengatur susunannya yang kita lihat dengan S+E. set,urrentIndex12. 6. +ayer0layer di dalam *Staked+ayout bisa diatur mana yang terlihat dengan mengaturnya dari *,omboBox dengan menghubungkan mereka berdua memakai onnet12. 8. Sementara yang saya tahu, hanya *,omboBox yang mampu mengatur layer dalam *Staked+ayout dan *-ushButton belum berhasil mengaturnya. Anda bisa melihat buktinya di sini dan di sini. .ampaknya, *Staked+ayout ingin selalu dberi masukan berupa integer sementara *-ushButton tidaklah seperti *,omboBox yang mengeluarkan nilai integer untuk setiap opsi yang kita tentukan. $isalnya yaa, A itu 3, B itu 6, , itu 8, dan seterusnya seperti kode di atas.