0
Qt 프로그래밍을 처음 사용합니다. 내가하고 싶은 것은 내가 추측하는 제목에서 꽤 자명하다. 크리 스 푸시 버튼을 클릭하면 데이터를 QString에 저장하려는 lineEdit가 있습니다. 문제는 위젯이 graphicsScene 안에 있으므로 on_pushbutton_clicked(); 기능.QPushButton을 클릭하면 QLineEdit의 데이터가 QString에 저장됩니다.
내 솔루션에 대한 코드는 아래에 있지만 추측했을 수도 있지만 작동하지 않습니다.
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)));
모든 종류의 도움을 주시면 감사하겠습니다.
문제 I 모든 위젯 QGraphicsScene 메인 함수 내에서 생성된다는 것이다. 따라서 mainwindow :: buttonclicked() 또는 dialogue :: buttonclicked()와 같은 것이 없습니다. 또한 QPushButton을 다시 구현하지 않았습니다. b는 객체입니다. b는 기본 QPushButton이므로 언급 한대로이 함수를 구현할 수있는 'MyWidget'이 없습니다. void MyWidget :: buttonClicked() { const QString text = m_lineEdit-> text(); // "text"로 무언가를하십시오 } –
clicked()에 연결할 수 있고 LineEdit과 그 처리 방법을 알고있는 QObject가 필요합니다. 기존 신호를 기존 슬롯에 연결하는 것보다 더 많은 사용자 지정 방식으로 신호에 반응하려면 슬롯을 정의하는 것 외에 다른 방법은 없으며 QObject/QWidget 하위 클래스에서만 발생할 수 있습니다. –
감사합니다. 나는이 슬롯과 신호 문제를 해결하기 위해 나 자신의 맞춤 위젯을 만들어야한다고 생각한다. –