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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 [2] 3 4 ... 32
16  Qt / Общие вопросы / Re: Выполнение функций с правами root : Декабрь 06, 2016, 16:51
Вот тут есть неплохое описание, как разрешить доступ к ресурсам не только для root'а.
17  Qt / Вопросы новичков / Re: Виджет-карта Qt 5.6 : Октябрь 27, 2016, 08:58
Помогите найти решение: как встроить карту в виде виджета в Qt 5.6? Подскажите какую библиотеку использовать. Уже несколько дней гуглю, читаю форумы разнообразные, но ничего не могу найти подходящего. QLocation, представляющий такую возможность, к сожалению больше этого не делает, т.к. карты с лета 2016 года не поддерживаются. Разнообразные QMapControl требуют Webkit, которого в 5.6, ясное дело, нима. Помогите с решением проблемы Грустный
За несколько дней можно было самому написать, благо тайловый вариант более чем не сложен. ~2 года назад тут похожий вопрос был, написал за скорую руку пример: https://github.com/KurlesHS/QtOsmTileMaps. Под тайлы OSM несложно доработать.
18  Qt / Общие вопросы / Re: Веб приложение с сервером на C++. React js или что? : Октябрь 09, 2016, 23:26
Сервер только начал делаться, выбираю между либами POCO, Proxygen или Qt
Qt в качестве фреймворка для высоконагруженного серверного приложения не самый лучший выбор, так как под капотом он для диспетчеризации событий использует select.
19  Qt / Многопоточное программирование, процессы / Re: Поиск слов в файле в Qt(Mutex) : Октябрь 06, 2016, 14:59
а скиньте код как вы сделали виджет,  да нужно  ручками  самому  делать
Код
C++ (Qt)
CustomWidget::CustomWidget(QWidget *parent) : QWidget(parent)
{
 
   /* нужные указатели, такие как toolButtonSelectDir,
    * pushButtonStart, lineEditDirName и listWidgetResult
    * можно (нужно) сдеалать переменными класса */

   QVBoxLayout *verticalLayout2;
   QHBoxLayout *horizontalLayout2;
   QGroupBox *groupBox;
   QHBoxLayout *horizontalLayout;
   QLineEdit *lineEditDirName;
   QToolButton *toolButtonSelectDir;
   QPushButton *pushButtonStart;
   QGroupBox *groupBox2;
   QVBoxLayout *verticalLayout;
   QListWidget *listWidgetResult;
 
   verticalLayout2 = new QVBoxLayout(this);
   verticalLayout2->setSpacing(6);
   verticalLayout2->setContentsMargins(11, 11, 11, 11);
   horizontalLayout2 = new QHBoxLayout();
   horizontalLayout2->setSpacing(6);
   groupBox = new QGroupBox(this);
 
   horizontalLayout = new QHBoxLayout(groupBox);
   horizontalLayout->setSpacing(6);
   horizontalLayout->setContentsMargins(11, 11, 11, 11);
 
   lineEditDirName = new QLineEdit(groupBox);
 
 
   horizontalLayout->addWidget(lineEditDirName);
 
   toolButtonSelectDir = new QToolButton(groupBox);
 
   horizontalLayout->addWidget(toolButtonSelectDir);
 
 
   horizontalLayout2->addWidget(groupBox);
 
   pushButtonStart = new QPushButton(this);
 
   horizontalLayout2->addWidget(pushButtonStart);
 
 
   verticalLayout2->addLayout(horizontalLayout2);
 
   groupBox2 = new QGroupBox(this);
 
   verticalLayout = new QVBoxLayout(groupBox2);
   verticalLayout->setSpacing(6);
   verticalLayout->setContentsMargins(11, 11, 11, 11);
 
   listWidgetResult = new QListWidget(groupBox2);
 
   verticalLayout->addWidget(listWidgetResult);
 
 
   verticalLayout2->addWidget(groupBox2);
 
   setWindowTitle(tr("Поиск файла"));
   toolButtonSelectDir->setText("...");
   pushButtonStart->setText(tr("Начать"));
   lineEditDirName->setText(tr("d:/some_dir"));
   resize(600, 600);
}
Код, сгенеренный uic'ом, и немного подправленный.
20  Qt / Многопоточное программирование, процессы / Re: Поиск слов в файле в Qt(Mutex) : Октябрь 05, 2016, 21:29
Теперь мне нужно вместо консоли сделать  в виде виджетта.
1)Подскажите  как в виджетте директорию задавать?
2) Как сделать что бы в верхней части  о задавать  директорию а в  нижней  результат выводить?
Если с точки зрения "дизайна", то я бы сделал примерно так:

В нижнем QGroupBox находиться QListWidet. Можно заменить на QTextEdit.
Ну и вместо ручного кодирования использовал бы дизайнер. Или по условию задачи нужно ручками виджеты на форме выставлять? Если да, то использовал бы сгенереный дизайнером код с небольшими правками =)


21  Qt / Многопоточное программирование, процессы / Re: Поиск слов в файле в Qt(Mutex) : Октябрь 03, 2016, 23:36
не пойму зачем тут mutex
Этот мутекс защищает общий для всех потоков список имен файлов foundFiles, по сути результат работы всех потоков.
При использовании QtConcurrent не нужен же. Результат и так в основной поток попадет.
22  Qt / Общие вопросы / Re: фильтрация и сортировка в отдельном потоке : Сентябрь 03, 2016, 17:40
Как то совсем смутно представляю, как это сделать можно.
А как насчёт сортировки блоками в потоках? Подмигивающий
И как ее прикрутить к QSortFilterProxyModel? Функция bool QSortFilterProxyModel::lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const, отвечающая за алгоритм сортировки, вызывается вьюхой в потоке, в котором живет GUI. То же самое и к  filterAcceptsRow(...) относится. Если я не прав, пните в нужном направлении =)
23  Qt / Общие вопросы / Re: фильтрация и сортировка в отдельном потоке : Сентябрь 02, 2016, 15:26
Я так понял вопрос про QSortFilterProxyModel речь идет. Как то совсем смутно представляю, как это сделать можно.
24  Qt / Вопросы новичков / Re: Связь между модулями : Июль 21, 2016, 16:59
Тогда такой вопрос, возможно ли написать геттер который вернет массив?
Многомерные массивы проблематично возвращать. Проще геттер для элемента массива написать. И даже наверное так лучше будет.
25  Qt / Вопросы новичков / Re: Связь между модулями : Июль 21, 2016, 12:22
В ideal.h должны быть публичные геттеры для этого вектора, вот их и используй.
26  Qt / Вопросы новичков / Re: Обработка события кнопки в динамически созданной вкладке. : Июль 20, 2016, 14:29
переименуй on_tbltoolButton_clicked в onTbltoolButton_clicked, что бы автоматического связывания не происходило и при создании кнопки соединяй сигнал clicked с onTbltoolButton_clicked вручную:

Код
C++ (Qt)
tbltoolbutton = new QToolButton(Direction_0);
tbltoolbutton->setObjectName(QStringLiteral("tbltoolbutton"));
tbltoolbutton->setGeometry(430, 30, 80, 30);
tbltoolbutton->setText(QApplication::translate("Rotation3D", "...", 0));
connect(tootbltoolbutton, SIGNAL(clicked()), this, SLOT(onTbltoolButton_clicked()));
 
27  Программирование / С/C++ / Re: Протаскивание большой структуры через череду return : Июль 11, 2016, 21:55
стандарт обязывает компиляторы поддерживать rvo/nrvo оптимизации.
Спасибо, погуглил по выделенным ключевым словам - в моём примере оно и работает по-ходу.
28  Программирование / С/C++ / Протаскивание большой структуры через череду return : Июль 11, 2016, 17:21
Доброго времени суток.

Иногда нужно протащить тяжеловесную структуру через несколько return (тот же паттерн pimpl у Qt).

Синтетический пример:

Код
C++ (Qt)
#include <stdio.h>
 
struct SomeLargeStuct {
   char data[100000];
   // ....
};
 
SomeLargeStuct f1 () {
   SomeLargeStuct s;
   s.data[0] = 'a';
   s.data[1] = 0x0a;
   s.data[2] = 0x00;
   return s;
}
 
SomeLargeStuct f2() {
   return f1();
}
 
SomeLargeStuct f3() {
   return f2();
}
 
 
int main(int argc, char *argv[])
{
   (void)argc;
   (void)argv;
   auto r = f3();
   printf(r.data);
   return 0;
}
 

Задумался над накладными расходами, он же по идее должен каждый раз в новой функции через конструктор копирования новый объект создавать? Добавил для теста в SomeLargeStuct отладочный вывод как в конструктор копирования так и в обычный конструктор - судя по выводу обычный конструктор вызвался один раз, конструктор копирования же совсем не вызывался.

Собственно вопрос - я могу на данное поведение рассчитывать во всех подобных случаях, или компилятор этот синтетический пример так оптимизировал? Ну и если у кого есть что почитать на эту тему - буду премного благодарен.

29  Qt / Дополнительные компоненты / Re: Подключение QuaZip : Июнь 26, 2016, 21:12
У меня подключено так:

в .pro файле приложения, в инклюде поменять путь до расположения файла quazip.pri библиотеки.
Код:
#QuaZip support

DEFINES += QUAZIP_STATIC
include($$PWD/../3rdparty/quazip/quazip.pri)
LIBS += -lz

#end QuaZip support
30  Qt / Общие вопросы / Re: чем можно записать аудио в файл? (НЕ С МИКРОФОНА!!!) : Июнь 17, 2016, 17:19
Kurles, добавил в твой код свой кусок


        } else if (!mThread.isRunning()) {
            qDebug() << "let's go!";
            startWaitAnyKey();
           QMediaPlayer* player =new QMediaPlayer(0, QMediaPlayer::StreamPlayback);
            player->setVolume(50);
            player->setMedia(QMediaContent(), &buf);
            player->play();

        }

        QNetworkReply *r = qobject_cast<QNetworkReply*>(sender());
        QByteArray qa;
        qa=r->readAll();
        mFile->write(qa);
        buf.write(qa.data(),qa.size());


плеер пару сек играет и замолкает - у плеера кончился контент
QMediaPlayer::BufferedMedia
QMediaPlayer::EndOfMedia
Тут уже не подскажу - с QMediaPlayer не сталкивался. Но вообще бы попробовал бы ffmpeg прикрутить и уже обработанный поток через QAudioOutput играл.
Страниц: 1 [2] 3 4 ... 32

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