這怎麼作?(想三四天了)

喜歡程式設計嗎?想要一窺 KDE/Qt 程式設計的奧秘嗎?想要
學習 X Window 上的視窗程式設計嗎?歡迎各類關於 KDE/Qt、Qtopia、Qt/Embedded、QSA、PyQt 等各類心得討論。

版主: AceLan, Franklin

這怎麼作?(想三四天了)

文章haway » 週五 3月 11, 2005 11:49 pm

說明一下架構:

form1, form2, class(name: mainclass)

mainclass 中宣告:
代碼: 選擇全部
{
public:
    form1 *wfrm1;
    from2 *wfrm2;

public slots:
    void show_wfrm2(){ wfrm2->show(); }
};


mainclass 開始會 wfrm1->show() 顯示 wfrm1.

wfrm1 中有兩個填入 user,password 的 QEditLine 還有一個 QPushButton ( name : Logoin )

當 Logoin 被按下時,會檢查 user,password 是否正確,若是正確的話就結束 wfrm1, 並且顯示 wfrm2.

好了!我的問題是,當 wfrm1 的檢查過程 ok 後,我怎麼 show wfrm2 ?

1.
wfrm1 的 Logoin 按鈕是 wfrm1 底下的物件,不可能在 mainclass 中建立 connect( wfrm1, SIGNAL(clicked()), this, SLOT(show_wfrm2()) )

2.
檢查的過程是在 wfrm1 底下,不可能控制 wfrm2->show()

3.
在 wfrm2 的底下,不可能讀取到 wfrm1 的 user,passwd
不能在 wfrm2 裡面作檢查。

4.
wfrm1 用 QT_Desiger 劃的,不能(我不會?)在 wfrm1 中增加 signals ,若能的話我則能用 Logoin button 去 emit
一個 wfrm1 的訊號,就可透過 mainclass 去連接 connect( wfrm1, SIGNAL(signal()), this, SLOT( show_wfrm2()) )

以上這四個方法是我都試過的,請問是否有我遺忘的,
或是觀念上不正確的,能否指導一下呢?謝謝!
haway
可愛的小學生
可愛的小學生
 
文章: 56
註冊時間: 週四 8月 12, 2004 12:58 pm
來自: 南台科技大學

Re: 這怎麼作?(想三四天了)

文章訪客 » 週六 3月 12, 2005 11:44 am

我沒寫過qt, 不過在很多GUI程式裡, 這種情形常用的方法如下
以下這段code放在mainclass內
代碼: 選擇全部
// 秀出wfrm1
if (wfrm1->show()) {
  // 透過一些wfrm1的public method或property讀取user輸入之資料
  wfrm2->xxx = wfrm1->xxx;
  wfrm2->yyy = wfrm1->yyy;

  // 秀出wfrm2
  wfrm2->show();
}
訪客
 

Re: 這怎麼作?(想三四天了)

文章haway » 週日 3月 13, 2005 11:20 pm

Anonymous 寫:我沒寫過qt, 不過在很多GUI程式裡, 這種情形常用的方法如下
以下這段code放在mainclass內
代碼: 選擇全部
// 秀出wfrm1
if (wfrm1->show()) {
  // 透過一些wfrm1的public method或property讀取user輸入之資料
  wfrm2->xxx = wfrm1->xxx;
  wfrm2->yyy = wfrm1->yyy;

  // 秀出wfrm2
  wfrm2->show();
}


:-D 謝謝回答!

但是『何時』這段程式碼需要被執行呢?

在 mainclass 中無法知道是否已經輸入了 user,password

唯一能判別的方式就是在 wfrm1 這個 class 之內。

而 wfrm1 無法控制 wfrm2 的顯示。

不知道是我的程式架構有問題,還是我的觀念不太正確,

如果這種兩個 form 之間的切換都沒有找尋答案的方向的話.

那那..... QT 怎麼發展大程式的? :-(
haway
可愛的小學生
可愛的小學生
 
文章: 56
註冊時間: 週四 8月 12, 2004 12:58 pm
來自: 南台科技大學

文章haway » 週一 3月 14, 2005 9:32 pm

我找到加入 signals/slots 的方法了。

繼續研究因該可以讓兩個 widget 溝通了。

謝謝各位。
haway
可愛的小學生
可愛的小學生
 
文章: 56
註冊時間: 週四 8月 12, 2004 12:58 pm
來自: 南台科技大學


回到 KDE/Qt 程式設計

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron