Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zwracanie wartości zmiennej w qt

Ostatnio zmodyfikowano 2016-07-14 18:34
Autor Wiadomość
Masterpc16
Temat założony przez niniejszego użytkownika
Zwracanie wartości zmiennej w qt
» 2016-07-14 17:38:28
Witajcie tworzę programik i mam mały problem w formularzu graficznym mam przycisk który wywoła okno getSavefileName. Tworzę sobie slot QString selectPatch i wywołuję go za pomocą connect
C/C++
connect( ui->select_path, SIGNAL( clicked( bool ) ), this, SLOT( selectPatch() ) );
wywołany slot otwiera okienko getSavefileName pobiera ścieżkę do zmiennej i na koniec ją zwraca
następnie mam drugi przycisk który wywołuje mi inny slot tj. editPatch i wywołuję go
C/C++
connect( ui->edit, SIGNAL( clicked( bool ) ), this, SLOT( editPatch() ) );
i w tym slocie mam
C/C++
void MainWindow::editPatch()
{
    extern Qstring patch;
    ui->label->settext( patch );
}
i niestety mi to nie działa :/
moje pytanie brzmi jak w qt przekazać wartość zmiennej z jednej funkcji do drugiej.
PS tak wiem jak to się robi w zwykłym c++ a qt dopiero się uczę

Z góry dzięki za pomoc :)
P-149946
mateczek
» 2016-07-14 18:27:22
jeśli coś działa w c++ działa i w qt-c++. Biblioteka ta do c++ dodaje tylko niezwykle użyteczny (moim zdaniem) mechanizm sygnałów i slotów.

Poniżej masz jakiś kod na szybkiego klepnięty.

PLIK nagłówkowy
C/C++
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<qstring>

namespace Ui {
    class MainWindow;
}

class MainWindow
    : public QMainWindow
{
    Q_OBJECT
    QString path; // składowa klasy path
   
public:
    explicit MainWindow( QWidget * parent = 0 );
    ~MainWindow();
   
private slots:
    void on_GethPath_clicked();
   
    void on_editPath_clicked();
   
private:
    Ui::MainWindow * ui;
};

#endif // MAINWINDOW_H


PLIK implementacji
C/C++
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include"QFileDialog"
MainWindow::MainWindow( QWidget * parent )
    : QMainWindow( parent )
     , ui( new Ui::MainWindow )
{
    ui->setupUi( this );
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_GethPath_clicked()
{
    path = QFileDialog::getSaveFileName( this, tr( "Save File" ), "c:/fota.jpg", tr( "Images (*.png *.xpm *.jpg)" ) );
}

void MainWindow::on_editPath_clicked()
{
    ui->lineEdit->setText( path );
}
P-149951
Masterpc16
Temat założony przez niniejszego użytkownika
» 2016-07-14 18:34:52
o właśnie nie wiedziałem gdzie utworzyć obiekt path. Dzięki @mateczek
P-149952
« 1 »
  Strona 1 z 1