我是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)));
非常感谢任何形式的帮助。
答案 0 :(得分:2)
我不知道如何将小部件置于QGraphicsScene中应该会有所作为。
在您的班级中保留指向QLineEdit“l”的指针,例如如QLineEdit * m_lineEdit。
将b,SIGNAL(clicked())连接到插槽buttonClicked()。
实现按钮点击如下:
void MyWidget::buttonClicked() {
const QString text = m_lineEdit->text();
//do something with "text"
}