QT 5.4.1将form1 mainwidow中的值发送到form2

时间:2015-07-20 11:44:22

标签: forms qt qlineedit

我是QT的初学者。我想将值发送回LineEdit主窗口到GraphicsWidget窗口进行计算。

mainwindow.ccp

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

GraphicsWidget.ccp

qDebug()<<value;

2 个答案:

答案 0 :(得分: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);
    

    mainwindow.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时,将会调用已连接的signal slot

  4. 没有GraphicsWidget::receiveLineEditValue(int value)的实施方案是直接拨打MainWindow
  5. 中的var yourList = new List<int[]>{ new int[]{ 2, 1, 55, 23, 3 }, new int[]{ 44, 7, 88, 2, 1} }; var sorted = yourList.Select(innerList => innerList.OrderBy(elm => elm));

答案 1 :(得分:0)

您可以将SIGNAL&amp; SLOT用于此目的,但是如果您是新手并且您对SIGNAL&amp; SLOT一无所知,则可以将值传递给另一个函数。

graphicswidget.h

public:
void receiveLineEditValue(int value);

mainwindow.cpp

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