qt connect() как вызвать c++ функцию?

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by qaz, 31 Jan 2014.

  1. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    всем привет, уже перечиал кучу статей и примеров по qt, но нигде так и не увидел примера того как напрмер принажатии на кнопку, которая вызовит функцию на с++, которая в свою очередь выполнит определённые действия и например вернёт результат в форму, вот к примеру

    [​IMG]

    хочу например чтобы ввести текст, нажать на кнопку и он отобразился в том большм блоке для текста, как это реализовать???

    вот код

    PHP:
    //#include "my_qt.h"

    #include <QtWidgets/QApplication>
    #include <QtWidgets/QPushButton>
    #include <QtWidgets/QWidget>
    #include <QtGui/QFont>
    #include <QtWidgets/QLabel>

    #include <QtWidgets/QHBoxLayout>
    #include <QtWidgets/QLineEdit>
    #include <QtWidgets/QTextEdit>


    #include <iostream>
    #include <string>

    using namespace std;


    string my_string "";
    string gopa(string text) {

        return 
    my_string text;

    }



     
    int main(int argcchar *argv[])

     {
         
         
         
    QApplication app(argcargv);
         
         
    QWidget *window = new QWidget();
         
    window->resize(620240);

         
    QPushButton button("Press me"window);

           
    QObject::connect(&buttonSIGNAL(gopa("text")), &appSLOT(quit()));
           
    //чё тут пихать??

           
    button.resize(10030);

            

         
           
    char *iq "write the text";
           
    char *iq2 = (char *)my_string.c_str();

           
    QTextEdit textEdit(iq2);


         
    QLabel *label = new QLabel(iq);
         
    QLineEdit *lineEdit = new QLineEdit();

         
    QHBoxLayout *layout = new QHBoxLayout();

         

         
    layout->addWidget(label);
         
    layout->addWidget(lineEdit);
         
    layout->addWidget(&button);
         
    layout->addWidget(&textEdit);
         
    window->setLayout(layout);


         
    window->show();
         return 
    app.exec();

         


         
     }
     
  2. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://stackoverflow.com/questions/9651001/clicked-signal-in-a-button
     
    _________________________
  3. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    спасибо, но я тоько начал учить qt, мне ссылки на страшные и непонятные бредокоды давать ненадо, неужели так сложно написать десяток строчек чтобы пооказать как нужно правильно?
     
  4. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    Создай класс Window, добавь туда свои контролы и слот set_text. Затем коннектишь сигнал clicked() твоей кнопки к слоту set_text() твоего класса.

    Код слота примерно следующий:

    Code:
    void set_text()
    {
         text_edit->append(line_edit->text());
    }