Privacy policyContactsAbout siteOpinionsGitHubDonate
© EVILEG 2015-2018
Recommend hosting
TIMEWEB
Nov. 20, 2018, 12:42 p.m.

Qt

QThread, Qt, QAbstractTableModel, QSqlQuery

There was a need to obtain a large amount of data from the database for the subsequent work of the user with them (Reference book of goods in a particular store).

For the code do not kick much. Programming for me is a hobby for the mind.

The query itself takes a long time. For this, we do it in the stream, display the endless ProgressBar to the user with the sentence "Lean back and wait." :-)

Feb. 14, 2018, 5:06 p.m.
Fynjy

Привет ВСем! Итак вопрос такой: Есть класс, в полях которого есть указатель на объект наследник от QDialog. Я создаю обьект основного класса, в конструкторе этого класса я создаю обьект в динамической памяти - указатель на наследника QDialog. Обьеект оснновного класса далее я перевожу из GUI потока в другой. Обьект в поле основного класса который я создал динамически в его конструкторе, остается в GUI потоке. Почему при вызове exec у наследника QDialog создается форма диалоога и все виснет?

Base.h
class Base
{
  public:
  Base();

  private:
  QDeriveDialog* m_DeriveDialog;

}
Base.cpp:
Base::Base
{
m_DeriveDialog = new QDeriveDialog();
}
...
в основной программе:
qDebug() << thread();      // запомним поток GUI
QThread thr = new QThread;
Base* base = new Base;
base->moveTothread(thr);
...
Base.cpp:
void process()
{
   qDebug() << m_DerivedDialog->thread;   // проверяю к какому потоку принадлежит объект
                                          // и он равен потоку GUI,
   if(m_DerivedDialog->exec() == QDialog::Rejected) // однако при вызове диал.окна, в нем 
// все виснет, окно появляется только контуром,
// все остальное не прорисовывается и курсор в
// колесико превращается ret = false; ... }
Nov. 15, 2017, 2:03 p.m.
Миша

Здравствуйте.

Одна из функций обрабатывает массивы и постоянно изменяет переменные, записанные в хедере. Переменные изменяются другими функциями. В хедере записано, т.к. к этим переменным постоянно обращаются различные функции.
Обработка массивов требует большой вычислительной мощности, потому нужно сделать многопоточность.
Если сделать многопоточность в данной функции, то разные потоки будут обращаться к недочитанным переменным в хедер и результаты расчетов будут ошибочными.
Скажите пожалуйста, как логичней подойти к вопросу многопоточности?
Oct. 23, 2017, 7:22 a.m.

Qt

Qt, QSerialPort, QThread

I had the task of writing software for controlling the radiator of the X-ray. Namely: realize the protocol of data transfer between the PC and the radiator of the X-ray and create the user-defined functions "Set parameters", "Enable X-ray", "Switch off X-ray".

The X-ray radiator is controlled by data transfer via the serial port, which is also called a COM port, but it is applicable only for Windows.

Qt has the QSerialPort class, which provides functions for accessing the serial port.
I want to show you my implementation of this task.

May 15, 2016, 11:11 a.m.

Qt

moveToThread, QObject, Qt, QThread, потоки

In a previous article we are only a little touch to working with threads , and in the version that is more for the customization of thread, although it can be used to perform outside work not directly related to the thread. That is an option with inheritance from QThread and override the method run().

Now we will create ExampleObject class whose objects will be transferred to the individual threads via moveToThread() method and implemented in most of these flows. A useful work will make the slot method run() , which will be defined in this class. What is important, object class will inherit from QObject .

In order to work in the run() method can be performed in cycles, using a while loop, which will operate using variable bool m_running. For the convenience of working with this variable we define it as Q_PROPERTY . But at the end of the work will emit finished() signal.

May 9, 2016, 5:12 p.m.

Qt

Qt, QThread, потоки

One of the most common ways to create a separate parallel threads in an application to Qt , and perform useful tasks in them is the inheritance of QThread class and override the method run() , which will be carried out and useful application code. When meeting with threads have read different opinions on this subject, and in this lesson will get acquainted with one of the possible ways to work with streams, but which are not considered to be the best option.

In general, if we make the class inherit from the QThread , it is logical to assume that this is done with the intention that it is not sufficient functionality of the class. But when this is done only with the aim to bring in, which must be performed in a separate thread run() method a useful code, then there is clearly something wrong. In addition, de might be a problem with scaling applications and reuse code, particularly hard this can be shown in the case where such inherited class becomes quite a lot.

This method is the low level, and is used primarily for customization native streams. What is somewhat contrary to the usual need to complete a task in a separate thread. That is, as mentioned above, such an approach is primarily needed to extend the functionality class. Nevertheless, this method is necessary to consider what and proceed.

April 7, 2016, 5:05 p.m.

Qt

Qt, QThread, потоки

GUI thread and the worker thread

Each program has a single thread (thread) on startup. This thread is called the main flow thread or GUI in Qt applications. Qt GUI to be started in this thread. All widgets and several similar classes, such as a QPixmap, do not work in a secondary thread. The secondary flow is commonly called workflow, which is designed to relieve the basis of the program thread.

Concurrent access to data

If two threads are a pointer to an object, it is possible to access both threads to the object at a certain time and this may destroy the integrity of the object. It is necessary to prevent simultaneous access to the object from different threads.

Dec. 12, 2018, 6:49 p.m.
Yaroslav Chernetskyi

Qt - Test 001. Signals and slots

  • Result:31points,
  • Rating scores-10
Dec. 12, 2018, 6:19 a.m.
nikbobrecov

Qt - Test 001. Signals and slots

  • Result:57points,
  • Rating scores-2
Dec. 11, 2018, 6:59 p.m.
Feniks3000

C++ - Тест 003. Условия и циклы

  • Result:71points,
  • Rating scores1
Recent comments
Dec. 11, 2018, 9:01 p.m.
Евгений Легоцкой

Не знаю, какой-там конкретно эффект и если честно не хочется fl studio ради того, чтобы посмотреть устанавливать, но из того, что увидел в интернете. Предполагаю, что то, что вы хотите с...
Dec. 11, 2018, 7:25 p.m.
Vlad15007

Подскажите пожалуйста ( я новичок совсем)Можно ли организовать спрайт без этого окошка (как в fl studio fruity dance)?
Dec. 11, 2018, 3:06 p.m.
Евгений Легоцкой

Что интересно, если написать так from <application_name>.<module_name> import <filename> ,то PyCharm сносит крышу, если разрабатываешь в рамках проекта приложение, ко...
Dec. 11, 2018, 2:52 p.m.
Илья Чичак

Тут мне тоже есть что сказать=) Сами разрабы советуют импортировать следующим образом: from <application_name> import <module_name> Стоит избегать from . import &l...;
Dec. 11, 2018, 2:28 p.m.
Евгений Легоцкой

Твоя правда. Согласен. Свои миграции храню в репозитории. На продакшене только выполняю обновление структуры базы данных, после тестирования на дев сервере конечно (читай локальная машина разр...
Now discuss on the forum
Dec. 12, 2018, 5:52 p.m.
Михаиллл

Оказывается оно все переводит в нижний регистр и нужно так писать: SearchTableModel->setTable("\"Test2\"");
Dec. 12, 2018, 4:32 p.m.
Булат Гиниятов

Допустим в MyObject *myobject = new MyObject; есть метод start(){while(aaa){////////////////}} Как мне обратиться к методу stop(){aaa=false;} ? Соответственно по...
Dec. 12, 2018, 4:28 p.m.
xintrea

Как выяснилось в этом обсуждении: Отправка Email из Android в Qt для отправки Email в Android необходимо делать Java-метод, который и будет отправлять email. И этот Java-мет...
Dec. 12, 2018, 3:35 p.m.
lynx

если кому будет вдруг нужно, подумал я над предложением Евгения Но думаю, что проще какой-то функционал дополнить для TableView из Qt Quick Controls 2. вообще берем стандарт...
Dec. 12, 2018, 1:49 p.m.
Евгений Легоцкой

но у меня нет времени учиться ВЕЧНО давайте без истерик, вы это говорите человеку, который всю жизнь учился, учится и будет учиться, и в программировании всегда так, или учишься и...
Join us in social networks

For registered users on the site there is a minimum amount of advertising