在QPushButton点击时将QLineEdit的数据存储到QString中

时间:2012-12-16 17:25:28

标签: qt qt4 qgraphicsscene qlineedit qpushbutton

我是Qt编程的新手。我想要做的是从我想的标题中解释得非常自我。我有一个lineEdit,当我点击一个Cretain PushButton时,我希望将它存储在一个QString中。问题是上面的小部件都在graphicsScene里面,所以我没有     on_pushbutton_clicked(); 功能

我自己的解决方案的代码如下,但正如您可能已经猜到的那样,它无效。

QLineEdit *l = new QLineEdit ;
QPushButton *b = new QPushButton;

QGraphicsProxyWidget *line = scene.addWidget(l);
QGraphicsProxyWidget *button = scene.addWidget(b);

line->setPos(-600,270);
button->setPos(-600,310);
//b->clicked();

QString input;
QString input = l->text(input);


QObject::connect(b,SIGNAL (clicked()),l, SLOT (setText(QString)));

非常感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:2)

我不知道如何将小部件置于QGraphicsScene中应该会有所作为。

  1. 在您的班级中保留指向QLineEdit“l”的指针,例如如QLineEdit * m_lineEdit。

  2. 将b,SIGNAL(clicked())连接到插槽buttonClicked()。

  3. 实现按钮点击如下:

    void MyWidget::buttonClicked() {
        const QString text = m_lineEdit->text();
        //do something with "text"
    }