2015-07-20 30 views
-1

我是QT的初學者。我想將值返回到LineEdit主窗口中GraphicsWidget窗口進行計算。QT 5.4.1將form1 mainwidow中的值發送到form2

mainwindow.ccp

int value=ui->lineEdit->text().toInt(); 

GraphicsWidget.ccp

qDebug()<<value; 
+0

你有什麼問題嗎?現在你已經從mainwindow中讀取int值了,你想用GraphicsWidget做什麼? – demonplus

回答

1
  1. 您可以使用Qt信號和槽。欲瞭解更多信息,請參閱文檔here

  2. 對你的情況的實施,將是這樣的

    MainWindow.cpp構造

    GraphicsWidget _graphicsWidget; 
    connect(this,SIGNAL(sendLineEditValue(int)), &_graphicsWidget,SLOT(receiveLineEditValue(int))); 
    

    mainwindow.h

    signals: 
    void sendLineEditValue(int value); 
    

    主窗口。 cpp

    void MainWindow::decideToSend(){ 
    int value=ui->lineEdit->text().toInt(); 
    emit sendLineEditValue(value); 
    } 
    

    graphicswidget.h

    public slots: 
    void receiveLineEditValue(int value); 
    

    graphicsgidget.ccp

    void GraphicsWidget::receiveLineEditValue(int value){ 
    qDebug()<<value; 
    } 
    
  3. 的想法是,當你永遠emit一個signal,連接的slot將被調用。

  4. 沒有signal slot的implemetation是直接調用GraphicsWidget::receiveLineEditValue(int value)MainWindow
0

您可以使用SIGNAL & SLOT用於這一目的,但是如果你是新的,你不知道SIGNAL & SLOT什麼,你可以只是將價值傳遞給另一個功能。

graphicswidget.h

public: 
void receiveLineEditValue(int value); 

mainwindow.cpp

GraphicsWidget* _graphicsWidget; 
_graphicsWidget->receiveLineEditValue(value);