KM
Қыр. 14, 2020, 5:19 Т.Қ.

не могу передать стринг с QLineEdit

с++

Добрый день, хочу создать динамичкси интерфейс, кроме интерфейса уже существует меню класс с отдельным файлом ui, в мейнвиндоу я их обьединяю, проблема в том что я не знаю почему я не могу передать стринг с QLineEdit, ну или просто текст не обязательнос стринг. Буду очень благодарна за любую помощь

  1. #include "interface.h"
  2. #include <QMouseEvent>
  3. #include <QPainter>
  4. #include <QFileDialog>
  5. #include <QGraphicsScene>
  6. #include <QDebug>
  7. #include "QLineF"
  8. #include <QResizeEvent>
  9. #include <QDial>
  10. #include <QMessageBox>
  11. #include <QObject>
  12. #include <QFile>
  13. #include <QTextStream>
  14. #include <QDrag>
  15. #include<QDataStream>
  16. #include <QString>
  17. #include <QPushButton>
  18. #include <QWidget>
  19. #include "menu.h"
  20. #include <QLineEdit>
  21. #include "ui_interface.h"
  22. #include <QListView>
  23. #include <QStandardItemModel>
  24. #include "dialog.h"
  25.  
  26. Interface::Interface(Menu *meni, QWidget *parent) : QWidget(parent), menu(meni)
  27.  
  28. {
  29. QGridLayout *mainLayout = new QGridLayout;
  30.  
  31. QPushButton* button2 = new QPushButton("add new button");
  32.  
  33. QLineEdit *myLineEdit = new QLineEdit(this);
  34. mainLayout->addWidget(myLineEdit, 0, 0);
  35. mainLayout->addWidget(button2, 0, 1);
  36.  
  37. setLayout(mainLayout);
  38.  
  39. QString nameforbtn = myLineEdit->text();
  40.  
  41. qDebug()<<nameforbtn;
  42.  
  43. QObject::connect(button2, &QPushButton::clicked, this, &Interface::newbtn );
  44. }
  45.  
  46. void Interface::newbtn(){
  47.  
  48. QString nameforbtn = myLineEdit->text();
  49.  
  50. qDebug()<<nameforbtn;
  51.  
  52. }
  53.  
  54.  
  55. Interface::~Interface()
  56.  
  57. {
  58. }
  59.  
4

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

5
R
  • Қыр. 14, 2020, 6:06 Т.Қ.

Доброго дня спробуйте

  1. QString nameforbtn = myLineEdit->displayText();
    KM
    • Қыр. 14, 2020, 6:34 Т.Қ.
    • (өңделген)

    Попробовала не помогло
    14:34:14: The program has unexpectedly finished.
    Interface::Interface(Menu meni, QWidget parent) : QWidget(parent), menu(meni)

    {

    1. QHBoxLayout *box = new QHBoxLayout(this);
    2. QPushButton* button2 = new QPushButton("add new button");
    3.  
    4. QLineEdit *myLineEdit = new QLineEdit(this);
    5.  
    6. button2->minimumSizeHint();
    7. QListWidget* list = new QListWidget;
    8. QListWidgetItem* item;
    9. item = new QListWidgetItem(list);
    10. list->addItem(item);
    11. item->setSizeHint(button2->minimumSizeHint());
    12. list->setItemWidget(item, myLineEdit);
    13. box->addWidget(list);
    14. box->addWidget(button2);
    15.  
    16. QString nameforbtn = myLineEdit->displayText();

    QObject::connect(button2, &QPushButton::clicked, this, &Interface::newbtn);

    }

    void Interface::newbtn(){

    //qDebug()<<"test";
    QString nameforbtn = myLineEdit->displayText();
    qDebug()< displayText();
    }

    Interface::~Interface()

    {
    }

      R
      • Қыр. 14, 2020, 10:08 Т.Қ.

      а звідки в тебе береться "myLineEdit" ?
      якщо ти про ось це

      1. QLineEdit *myLineEdit = new QLineEdit(this);

      то це так не працює, якщо в тебе білдається програма то значить десь ще ініціалізована myLineEdit

      бо якщо ти створюєш динамічно то тобі потрібно потім наприклад через каст отримати доступ до цих даних

        KM
        • Қыр. 15, 2020, 12:40 Т.Қ.

        так ты бы мог мне написать как именно?

          Дмитрий
          • Қыр. 17, 2020, 6:02 Т.Қ.
          1. QLineEdit *myLineEdit = new QLineEdit("line edit name", this);
          2. QString str = myLineEdit->text();
          3.  

            Пікірлер

            Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
            Кіріңіз немесе Тіркеліңіз