程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> qt c++-Qt中,到底如何實現主窗口和子窗口之間的通信?

qt c++-Qt中,到底如何實現主窗口和子窗口之間的通信?

編輯:編程綜合問答
Qt中,到底如何實現主窗口和子窗口之間的通信?

RT,比如,當子窗口關閉時,重新打開主窗口。這個是如何通信的,希望能給上例子。
我知道是用信號和槽,可是兩個窗口(類)之間的信號和槽我還不太會。網上也沒找到具體的例子。希望大嬸們能給個好點的直觀的例子。

最佳回答:


主窗體類為A,子窗體類為B,在A中實例化B,其對象為b,關閉b,但不要釋放b,調用b的public方法返回數據。仔細理解。

void A::buttonClick()
{
B b;
b.exec();
b.getData();
}

void A::buttonClick()
{
B *b = new B();
b->exec();
b->getData();
delete b;

}

應樓主要求再加上信號槽的實現方法,如下

主窗體類為A,子窗體類為B。類B中聲明一個信號signalB,類A中聲明一個槽函數slotA。
在A中實例化B,其對象為b, 在B類中需要的地方(如單擊按鈕)產生信號。
void B::buttonClick()
{
emit signalB;
}

void A::buttonClick()
{
B b;
connect(&b, SIGNAL(signalB), this, SLOT(slotA));
b.exec();
b.getData();
}

void A::slotA()
{
qDebug("收到了B中的信號,可以做相應處理");
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved