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

[C++, Qt] EMIT RETURN - Zwracanie wartości

Ostatnio zmodyfikowano 2014-01-04 01:03
Autor Wiadomość
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 :)
P-100893
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 :(
P-100910
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.
P-100916
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 :)
P-100920
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ć.
P-100925
krystian11102
Temat założony przez niniejszego użytkownika
» 2014-01-03 20:35:22
Oto kod:

mainwindow.h
C/C++
#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 // MAINWINDOW_H

watek.h
C/C++
#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 // WATEK_H

main.cpp
C/C++
#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
C/C++
#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
C/C++
#include "watek.h"
#include <QMessageBox>
Watek::Watek( QObject * parent )
    : QThread( parent )
{
}

void Watek::run()
{
    // Tutaj chcę pobrać tekst z pola lineEdit
    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.
P-101069
Czarny
» 2014-01-03 22:07:02
Klasa wątek nie ma dostępu do ui.
P-101073
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? :)
P-101080
« 1 » 2
  Strona 1 z 2 Następna strona