On Wednesday 26 October 2005 05:21 pm, Okto Silaban wrote:
> --- Ariya Hidayat <[EMAIL PROTECTED]> wrote:
> > > Aku nyoba bikin aplikasi untuk kirim sms. Waktu
> >
> > bikin
> >
> > > project, aku pilih 'new form' bukan 'main window'.
> > > Jadi program utama ada di Form1. Terus aku bikin
> > > tombol untuk menu 'About'. Aku coba edit
> >
> > connection
> >
> > > slotnya, tapi gak ngerti. Soalnya FormAbout gak
> >
> > ada di
> >
> > > target slotnya.
> >
> > Pas di dialog "View and Edit Connections", tinggal
> > klik tombol "Edit
> > Slots..." lalu buat fungsi baru dengan "New
> > Function".
>
> Ya yg ini aku udah ngerti, cuma class untuk membuka
> window baru itu apa ya? kalo QConnect kan buat
> menghubungkan event dengan fungsi (slot), nah kalo
>
> misalnya slotnya aku bikin dulu misal jadinya :
> > Kode untuk slot
> > baru ini bisa ditambahkan dari editor, coba Ctrl+E.
>
> Form1::FormAbout()
> {
> //apa class yang bisa digunakan untuk membuka
> FormAbout yang udah kubikin itu?
>  }
>
> > BTW, coba jangan main Qt Designer langsung, baca
> > dulu manualnya
> > misalnya lewat Qt Assistant. Problem seperti di atas
> > sudah dijelaskan
> > lengkap di manual.
>
> Aku udah sering kok baca manualnya, kemaren udah coba
> ubek - ubek cari class nya, tapi gak nemu juga.
>
> Di manual QtAssistant aku dah coba ubek -  ubek
> contohnya. Tapi kayaknya gak nemu contoh yang
> menghubungkan dua window.
>
> Salam,
> Okto Silaban - Ka.Div Intern KMTF - UGM http://kmtf.ft.ugm.ac.id
> Personal Homepage : http://www.oktosilaban.tk

yang ini bukan salah nggak baca manualnya... tapi salah konsep bikin 
aplikasinya...

pertama, main.cpp:

--- BEGIN ---

#include <qapplication.h>

#include "mainform.h" // form utama (boleh main window, widget, ato dialog)


int main(int argc, char* argv[])
{
        QApplication app(argc, argv);
        MainForm* mainform = new MainForm();
        app->setMainWidget(mainform);
        mainform->show();
        return app.exec();
}

--- END ---

nah terus buat form mainnya... supaya lebih fleksibel, biasanya cara yang saya 
pakai adalah subclassing, pertama buat file UI, misal: FMainForm.ui

ingat, kasih nama class FMainForm.ui, jangan sama dengan MainForm seperti pada 
main.cpp diatas... misalkan saya pakai nama classnya FMainForm...

trus, buat file mainform.h:

--- BEGIN ---

#ifndef MAINFORM_H
#define MAINFORM_H

#include "FMainForm.h" // ini akan digenerate otomatis oleh Qt dari 
                       // FMainForm.ui
#include "FAboutForm.h" // ini juga boleh dipakai kalo tidak diperlukan
                        // subclassing lagi

class MainForm : public FMainForm
{
        Q_OBJECT

public:
        MainForm();
        ~MainForm();

private:
        FAboutForm* aboutform; // nah... disinilah mestinya letaknya about 
form...

public slots:
        virtual void btnAbout_clicked(); // misalkan ini slot dari form main...

};

--- END ---

nah kemudian file mainform.cpp:

--- BEGIN ---

#include "mainform.h"

MainForm::MainForm()
{
        aboutform = new FAboutForm(this, "about");
}

MainForm::~MainForm()
{
}

void MainForm::btnAbout_clicked()
{
        aboutform->exec();
}

--- END ---

sebenarnya masih ada cara lain untuk menshare form About supaya bisa diakses 
dari file2 lain, tapi saya dah capek nih... :P
ntar kapan2 aja lagi...


-- 
Danny Kurniawan
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/CM/E/IT d+() s+:+ a- C++>+++$ UL+++(++)>++++ P!(+++) L+++>++++>$ E-- W++>$
N o-- K- w--(+++) O++@ M@ V? PS PE-@ Y+ PGP@ t++ 5+@ X+++(++) R tv+ b
+++(++) DI? D++@ G+>++ e++ h- r++ y z- 
------END GEEK CODE BLOCK------

-- 
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Kirim email ke