Пишу подробнее, вот класс формы
class FileFinder : public QWidget {
Q_OBJECT
private:
QLineEdit* m_ptxtDir;
QLineEdit* m_ptxtMask;
QTextEdit* m_ptxtResult;
QLCDNumber* lcd;
QString pathR;
QFile file;
QString name_of_dir;
QString name_new;
QDir dir;
proc thread; // создаем объект класса потока
public:
FileFinder(QWidget* pwgt = 0);
void start(const QDir& dir);
void runF(const QDir& dir);
public slots:
void slotFind ();
void slotBrowse();
void t(int); // слот который будем моединять с потоком
};
в конструкторе формы соединяем сигнал из потока со слотом в форме
connect(&proc, SIGNAL(sign(int)),this,SLOT(t(int)));
длее зглушка слота, и запускаем поток по нажатию кнопки
void FileFinder::t(int w)
{
}
// ----------------------------------------------------------------------
void FileFinder::slotFind()
{
dir = QDir(m_ptxtDir->text());
QStringList listFiles = dir.entryList(m_ptxtMask->text().split(" "), QDir::Files);
thread.setProc(listFiles, m_ptxtDir->text());
thread.start();
}
класс потока
class proc : public QThread
{
Q_OBJECT
private:
int m_nValue;
public:
explicit proc(QObject *p2=0);
void setProc(QStringList, QString);
void run();
signals:
void sign(int); // сигнал из потока
};
сигнал sign(int) вызываем в методе run как emit sign(j);
Возможно то, что я хочу делается совсем не так?
Похожего примера не нашел пока, может кто ссылку даст.