QT thread 問題

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

版主: AceLan, Franklin

QT thread 問題

文章向日癸 » 週四 12月 06, 2007 7:35 pm

請問各位大大
小弟是Qt的新手,最近在綀習寫一隻程式。
目的是希望按下一個button A後 開啟一個thread
然後按下另一個button B可以將此thread結束
但執行程式後發現 button A按下後 Dialog視窗上的UI就沒有回應了
我不知道寫法哪裡出錯,而在網路上找了許多文章仍然沒有找到解決的方法。因此想在這請教有經驗的前輩們,這問題該如何解決。
以下附上我的做法

1 先用Qt designer設計介面 並產生對應的 form1.h form1.cpp
2 將thread.cpp 及thread.h加入project中
3 在form1.ui.h 宣告 thread的物件並實作 button A 及 button B的code

下面附上我的程式碼
//********* thread.h *************
#ifndef THREAD_H
#define THREAD_H

#include <qthread.h>

class testThread : public QThread
{
public:
testThread();
~testThread();
void run();
void stop();
private:
bool stopped;
};
#endif

//******* thread.cpp *********

#include "thread.h"
testThread::testThread()
{
stopped = false;
}
testThread::~testThread()
{
}

void testThread :: run()
{
printf("Thread run\n");
while( !stopped)
{
sleep(1);
}
stopped = false;
printf("Thread stop\n");
}

void testThread :: stop()
{
stopped = true;
}
//******* Form1.ui.h **********

testThread mythread;

void Form1::button1()
{
mythread.run();
}

void Form1::button2()
{
mythread.stop();
}

感激不盡 謝謝
向日癸
 

文章70630515 » 週四 12月 06, 2007 11:12 pm

葵是不是有艸字頭@@?
我不自私,因為我開放(Open) , 我很快樂,因為我分享(Share)–Open Source
頭像
70630515
懵懂的國中生
懵懂的國中生
 
文章: 160
註冊時間: 週一 3月 13, 2006 9:15 am
來自: 北鼻存錢筒

文章70630515 » 週日 12月 09, 2007 9:06 am

@@
沒人回,我來回一下好了

基本上我不太建議初學者使用ui , 一來不方便debug,因為如果ui本身有bug,初學者根本不會找....,二來就是欠缺自己寫介面的能力

而你的問題,我在猜,會不會是沒有連接signal和slot....
如果可以的話,把這些細節的程式碼寫出來可以嗎
我不自私,因為我開放(Open) , 我很快樂,因為我分享(Share)–Open Source
頭像
70630515
懵懂的國中生
懵懂的國中生
 
文章: 160
註冊時間: 週一 3月 13, 2006 9:15 am
來自: 北鼻存錢筒

文章向日葵 » 週日 12月 09, 2007 5:19 pm

謝謝你的回應哦
上次名字打錯了 這次特來更正
關於寫ui這個問題
小弟受主管的指示在linux上做出一個ui界面出來
本身也是百般無奈,之前又沒有學過linux
會想用Qt是想說看能不能簡單又快速的開發
那至於大大提到的細節的程式碼
因為大部份都是Qt自動產生的
我也只有自己加入testThread的h及cpp檔
我打算再換另一種方式的寫法,如果到時還是不行
再po上來請好心人士幫忙看一下
在此特別感謝 70630515大大
向日葵
 

文章70630515 » 週日 12月 09, 2007 8:07 pm

qt designer本身沒有主動的幫使用設定signal 和 slot ,要自己另外設定喔 :-D

設定方法這裡有 (我寫的)
viewtopic.php?t=9464&highlight=kdevelop

有人反應說有問題....這個等我學校專題結束後會再check...
我不自私,因為我開放(Open) , 我很快樂,因為我分享(Share)–Open Source
頭像
70630515
懵懂的國中生
懵懂的國中生
 
文章: 160
註冊時間: 週一 3月 13, 2006 9:15 am
來自: 北鼻存錢筒


回到 KDE/Qt 程式設計

誰在線上

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