[C++, Qt] EMIT RETURN - Zwracanie wartości
Ostatnio zmodyfikowano 2014-01-04 01:03
krystian11102 Temat założony przez niniejszego użytkownika |
[C++, Qt] EMIT RETURN - Zwracanie wartości » 2014-01-01 21:28:11 Witam. Mam problem, mam wątek a w nim jakiś kod który np. 5 razy wypisuje tekst z QLineEdit i jakoś nie umiem zwrócić tego tekstu, pobrać go. Dacie jakieś wskazówki? Używam Qt Creator + Designer :) |
|
krystian11102 Temat założony przez niniejszego użytkownika |
» 2014-01-02 01:31:40 Ktoś pomoże? Proszę was, potrzebuje na szybko bo stoję w miejscu :( |
|
MrPoxipol |
» 2014-01-02 11:43:59 To pokaż ten kod. Nie wiem jak to jest z Qt, ale w GTK można przesłać wskaźnik jako argument funkcji sygnału. |
|
krystian11102 Temat założony przez niniejszego użytkownika |
» 2014-01-02 13:19:23 Coś mi się Winshit wiesi nie pokaże niestety ;/ Chyba wirusa złapałem.. Dobra mniejsza o to, próbowałem różne sposoby: 1. W Slocie zwrócenie wartości zamiast void to QString. 2. W Wątku pobrać tekst: QString Tekst = ui->pole->text(); I nie chciał się kompilować (Brak dostępu do ui pewnie) 3. Stworzyć zmienną i w slocie zapisywać do zmiennej potem odczytać zmienną w wątku. Nie można bo jest napisane "redefinition ......" 4. Szukanie sposobu w internecie (Polski jak i Angielski) i sposoby które znalazłem nie bardzo działają albo po prostu nie umiem ich przenieść na swój mini-program. (Uczę się dopiero)
Już brak mi pomysłów. Od wczoraj nad tym siedzę, całą noc aż nie spałem - bo jestem uparty.. Nie mógłbym spać ;) Jakieś wskazówki? Jakaś instrukcja co mam zrobić? Cokolwiek co by mogło mi pomóc?
Jak dam radę to wrzucę kod :)
|
|
MrPoxipol |
» 2014-01-02 13:43:02 Coś mi się Winshit wiesi nie pokaże niestety ;/ Chyba wirusa złapałem.. |
Aha. Jakoś da się pisać na forum. Pokaż kod to mógłbym wtedy coś powiedzieć, a poza tym mógłbyś również powiedzieć jakiej wersji Qt używasz, bo nie umiem wróżyć. |
|
krystian11102 Temat założony przez niniejszego użytkownika |
» 2014-01-03 20:35:22 Oto kod: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H
#include "watek.h" #include <QMainWindow>
namespace Ui { class MainWindow; }
class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow( QWidget * parent = 0 ); ~MainWindow(); Watek * mWatek; private slots: void on_pushButton_clicked(); private: Ui::MainWindow * ui; };
#endif
watek.h #ifndef WATEK_H #define WATEK_H
#include <QThread>
class Watek : public QThread { Q_OBJECT public: explicit Watek( QObject * parent = 0 ); void run(); signals: public slots: };
#endif
main.cpp #include "mainwindow.h" #include <QApplication> #include <QTextCodec>
int main( int argc, char * argv[] ) { QTextCodec::setCodecForTr( QTextCodec::codecForName( "UTF-8" ) ); QApplication a( argc, argv ); MainWindow w; w.show(); return a.exec(); }
mainwindow.cpp #include "watek.h" #include "mainwindow.h" #include "ui_mainwindow.h"
MainWindow::MainWindow( QWidget * parent ) : QMainWindow( parent ) , ui( new Ui::MainWindow ) { ui->setupUi( this ); mWatek = new Watek( this ); }
MainWindow::~MainWindow() { delete ui; }
void MainWindow::on_pushButton_clicked() { mWatek->start(); }
watek.cpp #include "watek.h" #include <QMessageBox> Watek::Watek( QObject * parent ) : QThread( parent ) { }
void Watek::run() { QString tekst = ui->lineEdit->text(); QMessageBox msgBox; msgBox.setText( tekst ); msgBox.exec(); }
Błąd jaki otrzymuje to: ..\nienazwany8\watek.cpp: In member function 'virtual void Watek::run()': ..\nienazwany8\watek.cpp:11: error: 'ui' was not declared in this scope A chciałbym pobrać tekst z okienka lineEdit i wyświetlić go w Komunikacie. :) Sory że nie odpowiedziałem byłem trochę zajęty.. Wersja Qt to 4.8.5. |
|
Czarny |
» 2014-01-03 22:07:02 Klasa wątek nie ma dostępu do ui. |
|
krystian11102 Temat założony przez niniejszego użytkownika |
» 2014-01-03 23:22:55 Tak, to wiem. Tylko chodzi mi o to, jak zrobić tak aby miała ten dostęp? :) |
|
« 1 » 2 |