我用另一個方式來解釋這個問題,希望板眾可以幫忙解答一下到底要如何做才好。
在main function中有程式碼如下
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
mainwindows w;
w.show();
return a.exec();
}
mainwindows的宣告是
class mainwindows:public QMainWindow
{
...
public:
void _draw();
private:
subwindows *psubwindows;
}
其中有一個subwindows的物件,它代表的是一個視窗、並且上面寫了hello world。
當我接收到來自internet的訊息時會有一個function被執行,這個function我稱它
calldraw(),且它沒有繼承任何QT類別。
calldraw做的事很容易,就是使用一個mainwindows *p,去呼叫 _draw(),所以就是
p->_draw(); 其中p是一個global 的point,它在mainwindows的建構子中用p=this;
儲存了物件位址。
_draw()內容如下
{
psubwindows = new subwindows;
psubwindows->show();
}
這樣的寫法compile可以過,所以此程式可執行,但執行的結果是
QPixmap: It is not to use pixmaps outside the GUI thread
test: Fatal IO error: client killed
然後程式自動結束、我也沒看到我想看的subwindows跑出來,只有
mainwindows出現而已。
詳細情況就是如此,請大家幫忙看看,感謝。
※ 引述《stanely321 (沒有心情的心情)》之銘言:
: ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
: ( 未必需要依照此格式,文章條理清楚即可 )
: 遇到的問題: (題意請描述清楚)
: 我有一個consol mode的程式,我想用QT做一個圖形介面去操作這個程式,
: 那這個consol mode程式能夠接收網路上的封包後自動呼叫一個function,
: 我可以在function裡定義我收到封包後要做的事,那我現在想做的事就是
: 希望這個function能夠告訴QT幫我畫一個視窗,視窗上會有二個push botton
: 一個是接收、一個是不理會,可是問題來了,不論是connect或是event的方法
: 都是需要QT原本就定義好的物件才可以使用,我那consol mode程式並不屬
: 於QT,只是我寫了一個interface讓QT圖形介面可以叫consol mode程式做事情
: ,然後反過來要讓consol mode程式叫QT做事情就不知道怎麼辦了。
: 希望知道的人可以指導一下方向,謝謝大家。
: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
: Ubuntu 10.04
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.30.10.70
※ 編輯: stanely321 來自: 61.30.10.70 (11/24 10:20)