crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику Алексей1153 ::: Спасибо сказали: 211 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
28.5.2018, 8:24 QMutex. Принудительная блокировка для ожидания команды
MishaUA, нет, не правильный подход в корне

ты считаешь, что можно включить блок в одном потоке и отключить его во втором. Это не так. Каждый поток вызывает собственную пару lock-unlock, а система обеспечивает, что эти два "блока" не пересекутся во время выполнения кода обоих потоков

в твоём случае можно suspend второй поток. И в первом потоке запускать второй по некоему отсчёту времени

и вот так наизнанку никогда не делай

while(1) {
m.unlock();

m.lock();
}


Строго в порядке

Цитата
m.lock();
m.unlock();


Для этого есть специальный класс QMutexLocker. Пример:

//начало синхронизируемого блока
{
   QMutexLocker locker(&m);

   //синхронизируемый код

}
97WzugSKd31, 9or6UxhWRa1, gHzcXItj3a1,
8.4.2018, 8:10 QProcess
Noob256, запусти редактор, а потом в диспетчере задач погляди содержимое командной строки (есть там такая колонка, по умолчанию отключена)
DaLgAMYeVr1, gHzcXItj3a1, hxr3Wawd9g1,
8.4.2018, 8:07 Скриншот окна по имени
Noob256,

должно быть
#include <windows.h>

как HBITMAP засунуть в QPixmap -
https://msdn.microsoft.com/en-us/library/wi...9(v=vs.85).aspx

но придётся ковыряться в форматах.

Можно попробовать так - создать совместимый (по размеру) с битмапом HDC, создать для него полноцветный HBITMAP (bitmap_dst), распечатать туда исходный битмап, а потом с bitmap_dst в едином полноцветном формате копировать при помощи GetDIBits

97WzugSKd31, hxr3Wawd9g1,
30.3.2018, 7:33 Android. Процесс, запущенный в отдельном потоке, завершается через время если приложение свернуть
MishaUA, очевидно, что нужно не доходить до строки
return a.exec();
, а ждать, пока поток thr не разрешит это сделать

а окно можно скрыть
w.hide();
gHzcXItj3a1,
18.11.2017, 8:48 Есть-ли здесь СПЕЦЫ ?
Цитата(Iron Bug @ 16.11.2017, 15:53) *
А вотЪ если подумать над этим, то можно _тратить_ ресурсов на _порядок_ (а то и два) меньше, при схеме с прерываниями
Хорошо если этот поток "упадёт" на свободное ядро, и если это доп-е ядро в проце есть, - а если нет !?


по ресурсам меня там всё устраивает, комп работает быстрее железяки ) И даже быстрее десяти таких железяк

Потоки система всегда раскидывает по "свободным" ядрам, об этом в общем случае можно не думать. Но, если что, можно озаботится расстановкой affinity и даже priority.

Если нет дополнительного ядра, то прерываниями ты ну никак не разгонишь производительность. Скорость реакции - да, но производительность - нет
9or6UxhWRa1,
15.11.2017, 8:29 Есть-ли здесь СПЕЦЫ ?
JohnZ, не задумывался об этом, меня устраивает поток на 100%
9or6UxhWRa1,
14.11.2017, 6:47 Есть-ли здесь СПЕЦЫ ?
я использовал в винде libusb, именно в отдельном потоке. Нормальная штука, работает чётко, в отличие от зависающего майкрочиповского драйвера
9or6UxhWRa1, hxr3Wawd9g1,
19.10.2017, 7:21 Запарсить данные приложения написанным на Qt
Pacan228, окно на Qt использует только одно верхнее апишное HWND окно, всё остальное рисует на этом окне библиотека без виндовых хендлов.

А таблицы эти - они же где-то хранятся, наверное ? Не в окне же. Ну либо самый экстремальный вариант - делать распознавание графики с окна и сдирать таким образом текст
9or6UxhWRa1, gHzcXItj3a1, hxr3Wawd9g1,
18.10.2017, 7:09 QProcess и разворачивание свёрнутого окна процесса
Анна, можно попробовать так - потрясти за винапи

найти главное окно процесса, вот тут есть пример
http://forums.codeguru.com/showthread.php?...-process-handle

достать адрес оконной процедуры (параметр GWL_WNDPROC)
https://msdn.microsoft.com/ru-ru/library/wi...4(v=vs.85).aspx

и при помощи функции
https://msdn.microsoft.com/ru-ru/library/wi...1(v=vs.85).aspx

отправить сообщение WM_SHOWWINDOW
https://msdn.microsoft.com/en-us/library/wi...5(v=vs.85).aspx
Анна,
21.7.2017, 7:33 QDataWidgetMapper и несколько QCombobox
iCast, можно предположить, что model->fieldIndex("car_name") и model->fieldIndex("task_name") возвращают одинаковые значения. Проверь
iCast,
7.6.2017, 7:56 Можно ли сделать, что бы в Qt Creator можно было кирилические названия?
честно - никогда не заморачивался, просто пути сделал не кириллические )

спотыкается не сам креатор, по сути, а компиляторы-линкеры-утилиты всякие. Наверное, никто не будет их обучать кириллице
97WzugSKd31, 9or6UxhWRa1, gHzcXItj3a1,
12.4.2017, 18:16 #pragma pack и __attribute__
попробуй так

#ifdef Q_OS_WIN32
#define __attribute__(a)  //ничего не делаем
#endif

#ifdef Q_OS_WIN32
#pragma pack(push, 1)
#endif
typedef struct __attribute__ ((packed))
{
...
}MyStruct;
#ifdef Q_OS_WIN32
#pragma pack(pop)
#endif


в линуксе это тоже какой-то дефайн, видимо



а вообще в C++ вот так уже не модно делать:
typedef struct
{
...
}MyStruct;


вот так моднее )
struct MyStruct
{
...
};


Анна, и вопрос - зачем тебе выравнивание на 1 байт ? Это нужно обычно в случае работы с железякой или старыми структурами, то есть там, где байты должны быть чётко на своих местах без фантазий компилятора
Анна,
20.1.2016, 8:03 QString объект из функции.
Ponchikus, ты выводишь адрес локальной переменной, которая уже будет уничтожена по выходу из функции. Поэтому адрес вполне уже может использоваться под новые нужды. Значение, которая вернула функция, используется в конструкторе при создании нового объекта (QString str), для которого и был использован уже освободившийся адрес


кстати, вот так

QString str;
str=returnStr();
qDebug()<<&str;



адрес может быть выведен другой (по логике - он обязательно другой будет)
Ponchikus,
23.12.2015, 7:58 Перевести код под gtk+3.6.4
а что именно не работает ?

навскидку - не видно, где создаётся память для widget. А на инициализацию переменных вообще тут поклали
lss,
16.12.2015, 13:46 QFileSystemModel и полное сканирование папок
dmsovetov, не знаю, как насчёт одинаковых имён, я к своим слотам и сигналам приписываю префиксы slot_ и signal_ всегда, чтобы не нарываться на одинаковые имена ) Так, на всякий случай. Здесь вроде всё правильно компилятор понимает

ещё момент. Я добавил проверку
    if(!idx.isValid())
    {
        //после переименования файла вне программы попадаем сюда, однако
    }


и вот такой невалидный индекс ты передаёшь в rowCount, после чего ассерт показывается

Причину невалидности не знаю

ViGOur, рекурсии нету, поскольку указаны SLOT и SIGNAL , поэтому препроцессор вроде понимает их как разные сигнатуры
dmsovetov,
16.12.2015, 12:28 Получение порядкового номера QTreeView
poluna, у меня обычно есть "внемодельное" дерево - источник, по которому модель пересобирается. Контейнер обычно на основе QMap<>

struct s_item
{
s_item* m_parent;
QVector<s_item*> m_children;

...

};


s_item* m_root;
QMap<s_item*,s_item*> m_tree;


У тебя этой очень удобной детальки , похоже, нету, поэтому мы не и понимаем друг друга :D В контейнере всё ищется и перебирается запросто
poluna,
15.12.2015, 8:01 Переподключение к БД
SibBear, про сбой не знаю (сбой - это серьёзно :lol: ), а при разрыве связи можно посмотреть

https://dev.mysql.com/doc/refman/5.7/en/auto-reconnect.html

метод QSqlDatabase::setConnectOptions , параметр MYSQL_OPT_RECONNECT

ну и проверяем, что база открыта isOpen

Переподключаться можно точно так же, как подключался

db.close();
db.open();


процесс подключения может быть заметный по времени (скажем так, не мгновенный), так что учитывай это. Я у себя выделил отдельный поток, который заведует открытием базы, а также скидыванием из очереди потока новых сообщений. Ну, и в случае многопоточности также не забывай про синхронизацию
SibBear,
1.6.2014, 18:09 Узнать о подключении телефона к ПК
я сомневаюсь, что это возможно в общем случае

но можно попробовать найти эмулированный телефоном COMпорт и AT командами выведать инфу о устройстве. Если COM не создаётся, то перебирать при помощи WinAPI все устройства и по вендорам, видимо, пытаться выяснить, кто из них кто

детали не смогу подсказать )

Ещё решение может зависить от поставленной цели
abc,
15.5.2014, 9:16 Задание цвета текста и фона недоступного QListWidgetItem с помощью QPalette или CSS
Оля, в QtCreator , в редакторе формы в свойствах найди palette, откроется редактор. Там выбери детальное отображение цветов. А внизу окна - режим, который хочешь настраивать. И экспериментируй , так сказать, визуально )) Я лично там путаюсь немного, да и редко пользуюсь этим

потом можно открыть *.ui редактируемого диалога и найти, как там что расставилось.
Steklova Olga,
12.5.2014, 9:53 Строка StringList по позиции в тексте
ну как бы есть )

std::map<int/*номер в QStringList*/,uint32_t/*индекс в файле*/>
+
обратный мар (только уже multimap)
Alex_under,
10.4.2014, 11:03 в чем сделать исталятор драйвера?
mezmay, попробуй. Я этой утилитой для windriver файлы ставил, может быть проканает и тут
[attachment=1837:wdreg.zip]

я использовал gui-версию, потому что в случае ошибок она выкидывает диалог с обильным логом , есть и просто консольный вариант утилиты

хм, форум чего-то ругается при скачивании. Файлы безопасные так то о_О

[attachment=1838:__________.png]
mezmay,
14.10.2013, 12:13 Изменение высоты виджетов "на ходу"
можно применить QSplitter

на форму кладёшь оба контрола, выделяешь их с CTRL - сверху появятся кнопки объединения их с участием сплиттера
[attachment=1799:__________.png]
Анна,
26.7.2013, 7:43 Ошибка в отлове события KeyPress для таблицы
pharret31,

Цитата
Qt::Key_Return 0x01000004
Qt::Key_Enter 0x01000005 //Typically located on the keypad.

:)
pharret31,
13.5.2013, 7:03 Отображение базы данных
видимо, этой мыслью является
QAbstractTableModel
или
QSqlTableModel

(вторым я не пользовался, но судя по названию он лучше подойдёт)
Ирина,
22.4.2013, 9:15 Скопировать AVI файл на съемный носитель
convert - преобразование без потери содержимого, format - с полной зачисткой (и быстрее)
AD,

8 страниц V   1 2 3 > » 
RSS Текстовая версия Сейчас: 15.11.2018, 17:17