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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 ... 113 114 [115] 116 117 ... 122
1711  Qt / Многопоточное программирование, процессы / Re: Использование QFuture и QtConcurrent внутри класса с вызовом метода этого класса : Сентябрь 04, 2012, 17:39
Читал уважаемый mutineer, и использовал для проверки такой код:
Код:
#include <QtGui/QApplication>
#include <QDebug>
#include <QtConcurrentRun>
#include <QFuture>

void func()
{
        for(int i = 0; i < 10; i++)
            qDebug() << i;
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QFuture <void> future = QtConcurrent::run(func);

    return a.exec();
}
1712  Qt / Многопоточное программирование, процессы / Использование QFuture и QtConcurrent внутри класса с вызовом метода этого класса : Сентябрь 04, 2012, 17:18
Здравствуйте!
Есть у меня 2 таблицы QTableWidget
Есть две функции заполняющие эти таблицы и выделяющие память под пользовательские виджеты
таблицы хранят информацию по пользовательским виджетам (наследование QWidget)

и если данных много, интерфейс начинает виснуть, что не хорошо
сначало решил воспользоваться QThread и передавать ему указатель на функцию, которую он будет в run() запускать, потом нашел информацию о QFuture и QtConcurrent

Теперь о главном, как запустить в двух потоках отдельные функции-члены, запуск нужно сделать в конструкторе класса, кроме того эти функции-члены принадлежат этому же классу

долго мучился, искал, потом тыкал пальцем в небо, и сгенерировал такой пример (который конечно не пашет, иначе не создавал здесь тему):
Код:
MyClass::MyClass(QWidget *parent):QWidget(parent)
{
 QFuture <void> threadLoadInTable1;
 QFuture <void> threadLoadInTable2;

 threadLoadInTable1 = QtConcurrent::run(&MyClass::loadInTable1);
 threadLoadInTable2 = QtConcurrent::run(&MyClass::loadInTable2);
}

Ошибка: no matching function for call to 'run(void (MyClass::*)())'

пытался так:
Код:
threadLoadInTable1 = QtConcurrent::run(loadInTable1);
Ошибка такая: no matching function for call to 'run(<unresolved overloaded function type>)'

прототипы для этих функций такого вида:
Код:
void function(void)
т.е. ничего не возвращают и параметры не принимают

Слышал, что gui нельзя создавать вне главного потока, и похоже все равно не получится запустить эти функции в отдельном потоке

Помогите пожалуйста!
1713  Qt / Общие вопросы / Re: Сигналы и слоты в динамической цепи классов : Сентябрь 02, 2012, 22:18
понятно) не там смотрел значит Улыбающийся
1714  Qt / Общие вопросы / Re: Сигналы и слоты в динамической цепи классов : Сентябрь 02, 2012, 21:51
А есть ли у вас, GreatSnake, на примете какая то официальная информация потверждающая оное? Улыбающийся
не сердитесь, но предпочитаю увидеть своими глазами Улыбающийся
1715  Qt / Общие вопросы / [РЕШЕНО] Сигналы и слоты в динамической цепи классов : Сентябрь 02, 2012, 21:15
Здравствуйте! Улыбающийся
Пилил сейчас проект, и заинтересовался вопросом про сигналы и слоты.
Погуглил, прочитал из документации про них, но ответ на свой вопрос не получил Грустный

Ситуация такая:
Есть виджет, принимающий и отправляющий сигналы, с ним коннектится другой класс, написал функцию что то типа void setConnectWithType(Type *type),
как вы видите в нее передается указатель, а внутри проверочка на существования указателя:
Код:
if(type)
и в скопках куча connect(), и благодаря этому можно к такому виджету можно подключить кучу классов Type
А что случится, если один из этих классов будет освобожден?
Будет ли к нему отправлен сигнал?
Нужно ли принудительно рассоединять до освобождения с помощью disconnect() или это уже позаботились до нас?
1716  Qt / Общие вопросы / Re: Правила составления версии, build и истории изменений программы : Август 31, 2012, 14:09
епти Улыбающийся
1717  Qt / Общие вопросы / Re: Бинарная строка : Август 31, 2012, 14:05
а с приведенным мной значением что выводит?
скопировал я этот код:
Код:
    QString s = QByteArray::fromHex("517420697320677265617421FFFF");
    qDebug() << s;
    qDebug() << s.toAscii().toHex();

вывелось у меня:
"Qt is great!yy"
"517420697320677265617421ffff"
1718  Qt / Общие вопросы / Re: Правила составления версии, build и истории изменений программы : Август 31, 2012, 14:03
Не уж то никто не давал программам версии и потом прокачивал эти версии? Улыбающийся

в aimp это вот так выглядит:

AIMP v3.10 Build 1061 (29.06.2012)

AIMP v3.10 Build 1051 RC 2 (01.06.2012)
AIMP v3.10 Build 1045 RC 1 (21.05.2012)

AIMP v3.10 Build 1040 Beta 3 (08.05.2012)
AIMP v3.10 Build 1034 Beta 2 (27.04.2012)
AIMP v3.10 Build 1027 Beta 1 (16.04.2012)
=========================================

AIMP v3.00 Build 985 (06.04.2012)
AIMP v3.00 Build 981 (16.02.2012)
AIMP v3.00 Build 976 (30.12.2011)

AIMP v3.00 Build 970 RC 3 (23.12.2011)
AIMP v3.00 Build 961 RC 2 (02.12.2011)

AIMP v3.00 Build 934 Beta 5 (07.10.2011)
AIMP v3.00 Build 916 Beta 4 (07.08.2011)
AIMP v3.00 Build 915 Beta 4 (05.08.2011)
AIMP v3.00 Build 901 Beta 3 (02.07.2011)
AIMP v3.00 Build 900 Beta 3 (01.07.2011)
AIMP v3.00 Build 881 Beta 2 (06.05.2011)
AIMP v3.00 Build 861 Beta 1 (01.04.2011)
AIMP v3.00 Build 851 Beta 1 (09.03.2011)


откуда берутся эти значение сборки?
по какому правилу они повышаются?
что за RC? Улыбающийся

если не знаете, так подскажите, как вы делали или видели у других Улыбающийся
1719  Qt / Общие вопросы / Re: Бинарная строка : Август 31, 2012, 13:41
Код:
   
    QByteArray byteArr = "ff04d3";
    QString s = QString(byteArr);
    qDebug() << s.toLocal8Bit();
    qDebug() << s.toAscii();

выводит "ff04d3"
1720  Qt / Общие вопросы / Re: Бинарная строка : Август 31, 2012, 13:16
Код:
 
    QByteArray byteArr = "ff04d3";
    QString str = QString(byteArr);
    QMessageBox::information(0, "", str);

вывелось "ff04d3"
1721  Qt / Общие вопросы / [РЕШЕНО] Правила составления версии, build и истории изменений программы : Август 31, 2012, 11:42
Собственно, вопрос Улыбающийся
Есть ли такие правила?
как правильно составлять версию программы?
когда нужно повышать версию программы?
что за build? (как переводит я знаю)

насчет истории изменений, увидел, что изменения делились на три метки: +, -, *
"+" - новое
"-" - исправление ошибок
"*" - обновления плагинов, используемых в программе

есть ли какие то правила для составления истории измений, использования в ней меток?
1722  Программирование / С/C++ / Re: Запуск одной копии программы + Показ первой копии : Август 31, 2012, 11:29
но и от такой проверки хуже не станет) и нагляднее выглядит:
Код:
if (instance.isRunning()) // если копия уже запущена, тогда...
{       
    instance.sendMessage("Wake up!"); // отсылаем ей сообщение
    return 0; // закрываемся
}
1723  Программирование / С/C++ / Re: Запуск одной копии программы + Показ первой копии : Август 31, 2012, 10:19
Тьфу, точно Веселый
1724  Программирование / С/C++ / Re: Запуск одной копии программы + Показ первой копии : Август 31, 2012, 01:39
main таков:
Код:
#include <QtGui/QApplication>
#include "ManagerNote.h"
#include "qtsingleapplication/qtsingleapplication.h"

int main(int argc, char *argv[])
{
    QtSingleApplication instance(argc, argv);
    if (instance.sendMessage("Wake up!"))
        if(instance.isRunning())
            return 0;

    QPixmap *pixmap = new QPixmap(":/images/splash.png");

    pixmap->scaledToWidth(200, Qt::SmoothTransformation);

    QSplashScreen *splash = new QSplashScreen(*pixmap);
    splash->show();

//    instance.processEvents();

    splash->showMessage("initialization...", Qt::AlignRight);

    ManagerNote *managerNote = new ManagerNote();   

    instance.setActivationWindow(managerNote);

    splash->finish(managerNote);

    delete pixmap;
    delete splash;

    instance.setQuitOnLastWindowClosed(false);

    QObject::connect(&instance, SIGNAL(messageReceived(QString)),
                     managerNote, SLOT(messageToApp(QString)));

    return instance.exec();
}

может я что то в main напутал?
1725  Программирование / С/C++ / Re: Запуск одной копии программы + Показ первой копии : Август 31, 2012, 01:36
Странно...у меня иногда с QtSingleApplication открывается новые копии
при постоянном запускании ехе (раз 10 открывал), это нормально?
Страниц: 1 ... 113 114 [115] 116 117 ... 122

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