Пытаюсь изменить значение текстового поля из другого потока, но почему-то не работает( Имеется класс MyThread:
class MyThread : public QObject
{
Q_OBJECT
Q_PROPERTY(QString firstNumber READ GetFirstNumber WRITE SetFirstNumber NOTIFY firstNumberChanged)
private:
QThread *thread;
NewClass *newCLass;
QString firstNumber;
private slots:
void StartThread();
void UpdateFirstValue (int i);
public:
explicit MyThread(QObject *parent = nullptr);
QString GetFirstNumber();
void SetFirstNumber(QString);
signals:
void firstNumberChanged();
};
Функция запуска потока
void MyThread::StartThread()
{
thread = new QThread;
newClass = new NewClass();
newClass->moveToThread(thread);
connect(newClass, SIGNAL(sendfirstvalue(int)), this, SLOT(UpdateFirstValue(int)));
thread->start();
}
Изменение текстового поля:
void MyThread::UpdateFirstValue (int i)
{
firstNumber = QString::number(i);
emit firstNumberChanged();
}
Класс NewClass, функция которая работает в потоке:
void NewClass::Start()
{
for(int i = 0; i < 3; i++)
{
emit sendfirstvalue(i);
Sleep(1000);
}
}
Класс MyThread связан с qml:
qmlRegisterType<MyThread>("NameModule", 1, 0, "TypeName");
qml файл:
import QtQuick 2.0
import QtQuick.Layouts 1.1
import NameModule 1.0
Rectangle {
id: content
TypeName{
id: obj
}
ColumnLayout {
height: parent.height
anchors.horizontalCenter: content.horizontalCenter
Rectangle {
Layout.fillHeight: true
Text {
anchors.horizontalCenter: parent.horizontalCenter
id: firstNumber
text: "f = " + obj.firstNumber
font.bold: true
onTextChanged: {
console.log("firstNumberChanged");
}
}
}
}
Функция работает, значение firstNumber изменяется, но при этом не хочет отображаться в окне (onTextChanged у поля срабатывает только 1 раз), заранее спасибо.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Простой код с использованием MPIПри сборке в релиз отладка останавливается в указанном месте на ветке else
Написал вот такие две функции для нахождения длины строки и разбиение ее на лексемыКак можно еще оптимизировать данный код, не используя...
Я знаю, как компилировать программку в Sublime Text 3Надо просто нажать клавишу F7
Задание, составить программу, которая рассчитывает решение по формуле (прикреплена)Если непонятно, что это за ch1, ch2 и т