Zwracanie wartości zmiennej w qt
Ostatnio zmodyfikowano 2016-07-14 18:34
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 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 connect( ui->edit, SIGNAL( clicked( bool ) ), this, SLOT( editPatch() ) );
i w tym slocie mam 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 :) |
|
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 #ifndef MAINWINDOW_H #define MAINWINDOW_H
#include <QMainWindow> #include<qstring>
namespace Ui { class MainWindow; }
class MainWindow : public QMainWindow { Q_OBJECT QString path; public: explicit MainWindow( QWidget * parent = 0 ); ~MainWindow(); private slots: void on_GethPath_clicked(); void on_editPath_clicked(); private: Ui::MainWindow * ui; };
#endif
PLIK implementacji #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 ); }
|
|
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 |
|
« 1 » |