Assalamu'alaikum..
Salam coding ^_^
Kadang kalo membuat app, kita ingin menempatkan widget di titik tertentu dan dengan ukuran yang tertentu. Bisa siiih dibuat hardcode tapi kalo kita bisa sesuaikan kapan saja kayaknya lebih seru deh. Heummmp.. Yuk seru-seruan sama object di app kita.
- Kita gunakan project yang sudah pernah kita buat saja. Buka project menampilkanGambar. Kalo belum punya projectnya, ini dia tutorial project menampilkan gambar.
- Buka file menampilkanGambar.ui, lalu geser label agak ke bawah. Drag dan drop Frame ke atas widget label. Drag dan drop 4 label, 4 lineEdit, dan 1 pushButton ke dalam frame tadi. Ganti text pada label pertama dengan "x", label kedua "y", label ketiga "w", dan label keempat "h". Lalu tempatkan lineEdit pertama disamping label pertama, lineEdit kedua disamping label kedua, lineEdit ketiga disamping label ketiga, dan lineEdit keempat disamping label keempat. Ubah text pushButton menjadi "Ubah Posisi dan Koordinat"
- Klik kanan pada widget pushButton -> Go to slot -> clicked() -> OK
- Lalu tambahkan source ini:
int w = ui->label->width(); int h = ui->label->height(); int x = ui->label->x(); int y = ui->label->y(); if(ui->lineEdit->text().toInt()!=0){ x = ui->lineEdit->text().toInt(); } if(ui->lineEdit_2->text().toInt()!=0){ y = ui->lineEdit_2->text().toInt(); } if(ui->lineEdit_3->text().toInt()!=0){ w = ui->lineEdit_3->text().toInt(); } if(ui->lineEdit_4->text().toInt()!=0){ h = ui->lineEdit_4->text().toInt(); } ui->label->setGeometry(x,y,w,h);
pemberian nilai awal x,y,w,h sesuai nilai awal label agar jika ada kolom yang di kosongkan (kolom x,y,w,atau h ada yang kosong), maka nilainya sama dengan nilai sebelumnya.
4 kali saya menggunakan if statement untuk mengambil nilai x,y,w,h. Nilai x diambil dari lineEdit, nilai y diambil dari lineEdit_2, nilai w diambil dari lineEdit_3, nilai h diambil dari lineEdit_4. Dari mana saya menentukan itu? Yuk liat lagi form ui, misal kita mau tau nilai w diambil dari widget mana. Disebelah huruf w, ada kolom lineEdit, kita klik kolom itu lalu lihat Property (ada di sebelah kanan bawah) dan lihat bagian "objectName".Nah, kelihatan kolom yang kita klik itu namanya lineEdit_3. Jadi, kalo misal pas di play kita input nilai x tapi yang berubah kok bukan nilai x, monggo di cek lagi objectNamenya.
fungsi setGeometry digunakan untuk merubah posisi widget di layar. - Save lalu run. Taraaam. DOne!!!
Selamat mencoba. If you have any questions, please feel free to ask ^_^