Russian Qt Forum
Май 15, 2024, 09:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 3 4 [5] 6 7
61  Qt / Пользовательский интерфейс (GUI) / Re: QToolButton и popupmenu : Февраль 18, 2016, 15:59
А если так, то проблема с подгонкой ширины исчезает
Код
C++ (Qt)
QToolButton::menu-button[popupMode="1"], QToolButton::menu-indicator[popupMode="1"] {
position: absolute; left: 0; height: 20; subcontrol-origin: margin; subcontrol-position: bottom;
}
 

PS: А магическая цифра 12 (для margin) это константа PM_MenuButtonIndicator (для каждого стиля свой). Тогда надо так:
Код
C++ (Qt)
QToolButton[popupMode="1"] {
width: 60; height: 60; margin: 0 -12 20 0; padding: 0 12 0 0;
}
QToolButton::menu-button[popupMode="1"], QToolButton::menu-indicator[popupMode="1"] {
position: absolute; left: 0; height: 20; subcontrol-origin: margin; subcontrol-position: bottom;
}
 
62  Qt / Общие вопросы / Re: Q5 vs Qt4 для embedded'а : Февраль 18, 2016, 14:18
2 года пользую Qt5.2...5.5 для железяки CPC304 - ни каких проблем не было, а вот для i.MX только Qt4.8 так как нужен QWS. Да и проекты туда-сюда разные.
63  Qt / Пользовательский интерфейс (GUI) / Re: QToolButton и popupmenu : Февраль 18, 2016, 12:33
Как то так, пробовал на классическом стиле винды. Заипался цифры подгонять  Грустный
Код
C++ (Qt)
QToolButton[popupMode="1"] {
width: 60; height: 60; margin: 0 -12 20 0; padding: 0 20 0 0;
}
QToolButton::menu-button[popupMode="1"], QToolButton::menu-indicator[popupMode="1"] {
height: 20; width: 74; subcontrol-origin: margin; subcontrol-position: bottom;
}
 
64  Qt / Пользовательский интерфейс (GUI) / Re: QToolButton и popupmenu : Февраль 18, 2016, 10:29
popupMode при этом какой?
65  Qt / Работа с сетью / Re: QNetworkInterface возвращает пустые строки : Февраль 18, 2016, 08:27
Попробуй посмотреть весь список: QNetworkInterface::allInterfaces()
66  Qt / Вопросы новичков / Re: QDate::fromString : Февраль 17, 2016, 12:56
см. Qt::RFC2822Date
Код
C++ (Qt)
QDateTime::fromString("Wed, 17 Feb 2016 09:21:21 GMT", Qt::RFC2822Date);
67  Qt / Вопросы новичков / Re: QMap и масив : Февраль 16, 2016, 18:38
То что вы хотели в самом начале делается через линейный динамический массив и приведение типа указателей к многомерному массиву.
Код
C++ (Qt)
float *data = new float[row * col];
float **pdata = (float**) &data;
 
for (int r = 0; r < row; r++) {
   for (int c = 0; c < col; c++)
       pdata[r][c] = r + c;
}
 
QMap<QString, float**> map;
map["mydata"] = pdata;
 
float **ppdata = map["mydata"];
 
// memcpy(..., data, ...)
 

PS:
Цитировать
Я думал что засовывая массив в словарь туда записывается вся память выделена под массива, а туда записывается только указатель на массив
не доглядел про это условие
68  Qt / Многопоточное программирование, процессы / Re: параллельная обработка файлов : Февраль 16, 2016, 16:03
главный вопрос темы: как ускорить обработку, отсюда Q'стринги просто не применимы  Улыбающийся
69  Qt / Многопоточное программирование, процессы / Re: параллельная обработка файлов : Февраль 16, 2016, 15:33
Да, если адреса данных для 2х потоков будут совпадать. Я смотрел с другой стороны, а если за квант времени каждый поток обрабатывает по 40 байт и адреса данных перекрываются, то будет постоянная перезагрузка кэша.
70  Qt / Многопоточное программирование, процессы / Re: параллельная обработка файлов : Февраль 16, 2016, 14:06
трудно будет вычленить минимальный

тема создана не для «напишите мне», а «расскажите как правильно сделать и что почитать».
то есть хэш разрезать на n/2 частей и на каждую выделить нить, которая будет проводить 3 сравнения?
Не нужно никого резать, и хеш не нужен. Есть контейнер в котором каждый эл-т соответствует файлу (данные). Теперь формируем "задачи" которые будем скармливать ниткам (число задач не зависит от числа ниток)

Первая задача будет сравнивать первый файл со всеми остальными
Вторая задача будет сравнивать второй файл со всеми последующими + предпоследний с последним
Третья - третий файл со всеми последующими + 3 последних
и.т.д

Задаче надо знать только контейнер и 2 индекса с которых начинать
вот это буду пробовать

В случае когда 1-я задача в первом потоке будет сравнивать 1-й и 2-й файлы, а 2-я задача во втором потоке будет сравнивать 2-й и 3-й файлы, то два потока будут обращаться к одному и тому же 2-му массиву данных. Это приведет к снижению производительности.
71  Qt / Многопоточное программирование, процессы / Re: параллельная обработка файлов : Февраль 15, 2016, 12:52
Вспомнилась мне точно такая же история. Нужно было в строго определенное время анализировать ~40000 техпроцессов (1 тп - 1 файл). Программа была написана задолго до меня в Delphi и отрабатывала за 2,5 часа. Руководству для принятия каких-то там решений оставалось 30 минут и попросили ускорить. Переписал все в Builder 2006 и результат получал через 40 минут. Все в восторге! Но какой то гвоздь в заднице не давал покоя и в одну  из новогодних ночей переписал все на чистом "С" без шаблонов, классов, с загрузкой файлов в память и расчета смещения указателей и все на 2-х потоках. Программа обсчитала все эти файлы за полторы минуты. Я в шоке! Руководство в испуге! Попросили больше таких программ не писать) Использование привычных классов будет вас тормозить.
72  Qt / Кладовая готовых решений / Re: ThreadTeam : Февраль 05, 2016, 15:01
Вот какие у меня замечания. Как нам известно "сигнал" предназначен, что бы сообщать об произошедших изменениях, а "слот" есть реакция на эти изменения. В Вашем случае сигналы SignalTaskGet, SignalTaskCalc не сообщают об изменения, а вызывают конкретные действия. Это не соответствует идеологии сигналов/слотов. И от этого такая запутанность.

И для чего таскать по всем вызовам ctl и thread?
73  Qt / Кладовая готовых решений / Re: ThreadTeam : Февраль 04, 2016, 15:43
Мне кажется все перемудрено. Давайте уточним. Есть 100 неких вычислений. Есть 4 потока. Запускаем потоки одновременно. В каждом потоке решается только одно вычисление. Как только оно закончилось то в этот поток закидываем следующее вычисление. Правильно? Тогда у меня вопрос - само вычисление есть самостоятельный объект с известным методом или как некоторая функция произвольного класса?
74  Qt / Общие вопросы / Re: Передача аргументов для connect : Февраль 04, 2016, 10:18
Код
C++ (Qt)
   template <typename Func>
   void connectAll(const typename QtPrivate::FunctionPointer<Func>::Object *receiver, Func slot)
   {
       for (int i = 0; i < mData.size(); ++i)
           connect(mData[i], &MyObject::Signal, receiver, slot);
   }
 
75  Qt / Вопросы новичков / Re: Как установить тень для текста в QPushBut? : Февраль 02, 2016, 09:56
Цитировать
Это тень))) но не охота самому ее рисовать)) думал что-то есть уже готовое. Но видать придется писать свой класс кнопки и в нем переопределять метод setText и paintEvent. ((

Не обязательно.

Код
C++ (Qt)
class TextShadowStyle : public QProxyStyle
{
public:
   void drawItemText(QPainter *painter, const QRect &rect, int flags, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole) const
   {
       if (textRole == QPalette::ButtonText)
       {
           QPalette shadowPalette(palette);
           shadowPalette.setColor(QPalette::ButtonText, QColor(0, 0, 0, 40));
           QProxyStyle::drawItemText(painter, rect.adjusted(3, 3, 3, 3), flags, shadowPalette, enabled, text, textRole);
       }
       QProxyStyle::drawItemText(painter, rect, flags, palette, enabled, text, textRole);
   }
};
 
ui->pushButton->setStyle(new TextShadowStyle);
 
Страниц: 1 ... 3 4 [5] 6 7

Страница сгенерирована за 0.175 секунд. Запросов: 23.