Архив метки: c++

Воспроизведение mp3 из ресурса QT

Сначала необходимо добавить ресурс (правая кнопка мыши по проекту -> QT -> добавить ресурс):

Далее воспроизводим:

#include <Phonon/MediaObject>

void Form1::SoundPlay(){

    Phonon::MediaObject *music =
    Phonon::createPlayer(Phonon::MusicCategory,
                              Phonon::MediaSource(QUrl("qrc:/sounds/01009.mp3")));
     music->play();
}

 

QT Creator : работа с QtableWidget

Form1::Form1(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::Form1){
    ui->setupUi(this);
   ui->tableWidget->setColumnCount(2); // Указываем число колонок
    ui->tableWidget->setShowGrid(true); // Включаем сетку
    // Разрешаем выделение только одного элемента
    ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
    // Разрешаем выделение построчно
    ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
    // Устанавливаем заголовки колонок
    QStringList headers;
        headers.append("Название");
        headers.append("Количество");
    ui->tableWidget->setHorizontalHeaderLabels(headers);
    // Растягиваем последнюю колонку на всё доступное пространство
    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
    // Скрываем колонку под номером 0
    //ui->tableWidget->hideColumn(0);
    // делаем таблицу readonly
    ui->tableWidget->setEditTriggers(QTableWidget::NoEditTriggers);
    // добавим в ячейки данные
    ui->tableWidget->insertRow(0);
    ui->tableWidget->setItem(0,0, new QTableWidgetItem("Ваши новые тикеты"));
    ui->tableWidget->setItem(0,1, new QTableWidgetItem("0"));
    ui->tableWidget->insertRow(1);
    ui->tableWidget->setItem(1,0, new QTableWidgetItem("-- не завершенные (Менеджер)"));
    ui->tableWidget->setItem(1,1, new QTableWidgetItem("0"));
    ui->tableWidget->insertRow(2);
    ui->tableWidget->setItem(2,0, new QTableWidgetItem("-- не завершенные (Клиент)"));
    ui->tableWidget->setItem(2,1, new QTableWidgetItem("0"));
    ui->tableWidget->insertRow(3);
    ui->tableWidget->setItem(3,0, new QTableWidgetItem("Новых в подразделении"));
    ui->tableWidget->setItem(3,1, new QTableWidgetItem("0"));
    ui->tableWidget->insertRow(4);
    ui->tableWidget->setItem(4,0, new QTableWidgetItem("-- не закрытых"));
    ui->tableWidget->setItem(4,1, new QTableWidgetItem("0"));
    ui->tableWidget->insertRow(5);
    ui->tableWidget->setItem(5,0, new QTableWidgetItem("Заявок на подключения"));
    ui->tableWidget->setItem(5,1, new QTableWidgetItem("0"));
    // растянем все колонки
    ui->tableWidget->resizeColumnsToContents();

 

Шейпер трафика на cpp под FreeBSD

Вот нашел в своих старых файлах.  Пытался когда-то переписать шейпер с PHP на cpp, думал что выигрыш в скорости работы получу. Не получил ничего кроме усложнения 😉 Потому осталось в «столе» и в продакшен не пошло. Узкоспециализированная разработка, использовать которую вот так просто не получится. Выложил для «истории», чтоб не потерялась если что.. Читать далее Шейпер трафика на cpp под FreeBSD

Удаление пробелов из строки С++

Часто бывает необходимо при обработке  результата вывода выполнения консольных программ, убрать все пробелы из строки. Стандартного решения (ктоб сомневался!) в с++ нет. Пишем свой велосипет.

string trim(string ss){
 int i=0;
 string st=""; 
 while(i!=ss.length()-1){
   if(ss[i]!=' '){st+=ss[i];};
   i++;
 };    
 return st;
};

Возврат динамического массива из функции. C++

Задача: обьявить суперглобальный динамический массив, в который попадают значения из функции.

Решение:

struct tars{
    int tar_id;
    string tar_name;
    int fixshape;
    int used;
    int maxspeed;
    int onlytar;
};
tars *gtars;
tars *GetTarifsFromNoc(){
   tars *noctar=new tars[cnttar];
   noctar[counttar].fixshape=atoi(row[5]);
   noctar[counttar].onlytar=atoi(row[10]);
   return noctar;
};
int main(int argc, char** argv) {
   gtars=GetTarifsFromNoc();
   return 0;
}