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

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4 5 ... 23
31  Qt / Вопросы новичков / Re: qprocess+форматирование : Ноябрь 27, 2017, 20:31
чтобы прогресс бар туда сюда бегал
32  Qt / Вопросы новичков / qprocess+форматирование : Ноябрь 25, 2017, 12:40
Здравствуйте пишу простенькую программку форматирования дисков
Вся проблема заключается в том что не идет сигнал readyreadstandartoutput
По нажатию на pushbutton должно начать форматирование
Код
C++ (Qt)
void MainWindow::knopkaClicked()
{
    connect(&pr,SIGNAL(readyReadStandartOutput()),this,SLOT(getoutput()));
   pr.start("/usr/bin/dvd+rw-format",QStringList()<<"-fast"<<"/dev/sr0:;
}


//Здесь по идее просто обработка событий из очереди и вывод в textedit
Код
C++ (Qt)
void MainWindow::getoutput()
{
   QApplication::processEvents();
   QString rex=pr.readAllStandartOutput()
   ui->textedit->setText(rez)
}
pr- объект класса QProcess объявленный в секции Public (QProcess pr)

Вообщем когда начинается форматирование диска и когда оно заканчивается pr испускает сигнал и started и finished (я проверял)
Но проблема в том что сигнал readyReadStandartOutput() не испускается вообще (на протяжении всего процесса форматирования). По моей задумке во время стирания диска должен вертеться прогресс бар туда-сюда, но этого не происходит по причине что не испускается readyReadStandartOutput()
Так вот в чем может быть проблема?

33  Qt / Вопросы новичков / Re: qfile Не читает файл целиком : Октябрь 01, 2017, 19:38
Код
C++ (Qt)
QString df=fg.readAll();


эта конструкция присвоения не подводила не разу.


34  Qt / Вопросы новичков / Re: qfile Не читает файл целиком : Октябрь 01, 2017, 09:53
короче я понял в чем была проблема. Оказывается разделителем в файле используются символы '\000' вот поэтому и читался не весь файл. я считал все в qbytearray заменил "000" на "=" и затем перевел все в qstring так все данные из файла считал


ps дурацкий формат cups наверно
35  Qt / Вопросы новичков / Re: qfile Не читает файл целиком : Сентябрь 30, 2017, 16:53
прав достаточно возвращает true. прога из под рута работает.
в файле есть какие то специфические символы скорее всего но как его считать непонятно
36  Qt / Вопросы новичков / qfile Не читает файл целиком : Сентябрь 30, 2017, 12:16
Здравствуйте пытаюсь считать файл заданий печати находящий в /var/spool/cups
но почему то файл считывается не весь. Не понятно почему тк он маленький 866 байт

вот собственно код

Код
C++ (Qt)
#include <QCoreApplication>
#include <QFile>
 
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   QFile fg("/var/spool/cups/c00001");
   if (fg.open(QIODevice::ReadOnly))
   {
       QString df=fg.readAll();
       fg.close();
   }
   return 0;
}
 

сам файл прикрепляю
непонятно почему он его не может прочитать?
В чем может быть проблема

ps: файл переименовал c00001 в  c00001.txt чтобы отправить во вложении
37  Qt / Вопросы новичков / Re: вопрос по qt+visual studio : Июль 15, 2017, 20:42
В общем не пойму почему у меня линковщик не хочет линковать....
38  Qt / Вопросы новичков / Re: вопрос по qt+visual studio : Июль 15, 2017, 20:18
должна быть указана папка поиска библиотек $(QTDIR)\lib
Где должна быть указана?
Это в компоновщик->ввод->дополнительные зависимости  ?
39  Qt / Вопросы новичков / Re: вопрос по qt+visual studio : Июль 15, 2017, 08:35
а в win32api #pragma не надо добавлять?

у меня сами классы в win32api видит через #include но вот линковщик ругается
40  Qt / Вопросы новичков / Re: вопрос по qt+visual studio : Июль 15, 2017, 08:33
C:\Qt\Qt5.9.1\5.9.1\msvc2015_64  -- QTDIR
41  Qt / Вопросы новичков / qprocess+mount : Июль 13, 2017, 22:47
здравствуйте пытаюсь получить вывод команды mount
причем если за место
Код
C++ (Qt)
df.start("mount",QStringList()<<"/dev/sdb1"<<"/root/media");
просто 
Код
C++ (Qt)
df.start("mount");
то вывод идет
Код
C++ (Qt)
#include <QCoreApplication>
#include <QProcess>
#include <iostream>
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
   QProcess df;
   df.start("mount",QStringList()<<"/dev/sdb1"<<"/root/media");
   df.waitForFinished();
   QString str=df.readAll();
   std::cout<<"hgh="<<str.toStdString()<<std::endl;
   return 0;
}
 
42  Qt / Вопросы новичков / Re: вопрос по qt+visual studio : Июль 12, 2017, 22:11
добавил я
 C/C++ > Additional Include Directories     .\GeneratedFiles;.;$(QTDIR)\include;.\GeneratedFiles\$(ConfigurationName);$(QTDIR)\include\QtCore;$(QTDIR)\include\QtGui;$(QTDIR)\include\QtWidgets;%(AdditionalIncludeDirectories)

Linker > Input > Additional Dependencies     kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;qtmaind.lib;Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;%(AdditionalDependencies)



при компиляции ругается на



Серьезность   Код   Описание   Проект   Файл   Строка   Состояние подавления
Ошибка   LNK1104   не удается открыть файл ""   Win32Project6   C:\Users\MAX\documents\visual studio 2015\Projects\Win32Project6\Win32Project6\LINK   1   


ps эти строки взял из qt gui application  созданного в vs


PSS Классы увидел проблема только с линкером он не хочет упорно видеть   qtmaind.lib Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib
43  Qt / Вопросы новичков / вопрос по qt+visual studio : Июль 11, 2017, 21:53
Здравствуйте вопрос такой стоит студи 2015 и стоит qt 5.9
Скачал плагин для студии чтобы интегрировать qt в студию получилось. добавилась вкладка и возможность создания qt приложений. Создал qt gui приложение откомпилировал в студии без ошибок, библиотеки qt видны.
Но допустим если я создаю приложение win32api(приложение windows) он уже не видит классы qt (допустим QString). Как это можно исправить?
44  Qt / Вопросы новичков / Re: вопрос по поводу qthread : Июль 02, 2017, 22:46
future--переменная класса ------QFuture <QString> future;
Код
C++ (Qt)
future=QtConcurrent::run(this,&MainWindow::getnameusbdevice,hardwareserial);
QString gg=future.result();

все тоже самое....
45  Qt / Вопросы новичков / Re: вопрос по поводу qthread : Июль 02, 2017, 22:27
хм в чем может быть проблема

вот вызов функции
Код
C++ (Qt)
future=QtConcurrent::run(this,&MainWindow::getnameusbdevice,hardwareserial);
              watch.setFuture(future);
             watch.waitForFinished();
              QString gg=future.result();

вот сама функция
Код
C++ (Qt)
QString MainWindow::getnameusbdevice(QString serial)
{
 
 
   VARIANT vtProp2;
  VARIANT vtProp4;
 
   QString drl;
   IWbemLocator *pLoc = NULL;
   IWbemServices *pSvc= NULL;
   IWbemClassObject *pclsObj = NULL;
   //Создаем объект IWbemLocator
   HRESULT hres;
   hres =  CoInitializeEx(0,COINIT_APARTMENTTHREADED);
   if (FAILED(hres))
   {
       cout << "Failed to initialize COM library. Error code = 0x"
           << hex << hres << endl;
       //return listdevice;                  // Program has failed.
   }
   hres =  CoInitializeSecurity(
       NULL,
       -1,                          // COM authentication
       NULL,                        // Authentication services
       NULL,                        // Reserved
       RPC_C_AUTHN_LEVEL_DEFAULT,   // Default authentication
       RPC_C_IMP_LEVEL_IMPERSONATE, // Default Impersonation
       NULL,                        // Authentication info
       EOAC_NONE,                   // Additional capabilities
       NULL                         // Reserved
       );
//    if (FAILED(hres))
//    {
//        cout << "security. Error code = 0x"
//            << hex << hres << endl;
//        //return listdevice;                  // Program has failed.
//    }
   hres = CoCreateInstance(
       CLSID_WbemLocator,
       0,
       CLSCTX_INPROC_SERVER,
       IID_IWbemLocator, (LPVOID *) &pLoc);
   if (FAILED(hres))
   {
       cout << "create inst loc. Error code = 0x"
           << hex << hres << endl;
       //return listdevice;                  // Program has failed.
   }
   hres = pLoc->ConnectServer(
        _bstr_t(L"ROOT\\CIMV2"), // Object path of WMI namespace
        NULL,                    // User name. NULL = current user
        NULL,                    // User password. NULL = current
        0,                       // Locale. NULL indicates current
        NULL,                    // Security flags.
        0,                       // Authority (for example, Kerberos)
        0,                       // Context object
        &pSvc                    // pointer to IWbemServices proxy
        );
   if (FAILED(hres))
   {
       cout << "connectserver error. Error code = 0x"
           << hex << hres << endl;
       //return listdevice;                  // Program has failed.
   }
   IEnumWbemClassObject* pEnumerator = NULL;
   ULONG uReturn = 0;
 
   hres = CoSetProxyBlanket(
      pSvc,                        // Indicates the proxy to set
      RPC_C_AUTHN_WINNT,           // RPC_C_AUTHN_xxx
      RPC_C_AUTHZ_NONE,            // RPC_C_AUTHZ_xxx
      NULL,                        // Server principal name
      RPC_C_AUTHN_LEVEL_CALL,      // RPC_C_AUTHN_LEVEL_xxx
      RPC_C_IMP_LEVEL_IMPERSONATE, // RPC_C_IMP_LEVEL_xxx
      NULL,                        // client identity
      EOAC_NONE                    // proxy capabilities
   );
   if (FAILED(hres))
   {
       cout << "proxyblanket. Error code = 0x"
           << hex << hres << endl;
       //return listdevice;                  // Program has failed.
   }
 
   hres = pSvc->ExecQuery(
       bstr_t("WQL"),
       bstr_t("SELECT * FROM Win32_DiskDrive"),
       WBEM_FLAG_FORWARD_ONLY | WBEM_FLAG_RETURN_IMMEDIATELY,
       NULL,
       &pEnumerator);
   if (FAILED(hres))
   {
       cout << "execquery. Error code = 0x"
           << hex << hres << endl;
       //return listdevice;                  // Program has failed.
   }
  // QString drl;
   while (pEnumerator)
   {
       HRESULT hr = pEnumerator->Next(WBEM_INFINITE, 1,
           &pclsObj, &uReturn);
 
       if(0 == uReturn)
       {
           break;
       }
       hr=pclsObj->Get(L"PNPDeviceID", 0, &vtProp4, 0, 0);
 
       hr=pclsObj->Get(L"Model",0,&vtProp2,0,0);
 
       BSTR rr=vtProp4.bstrVal;
 
       //сравниваем pnpdeviceid РґРІСѓС… объектов
 
       //
       QString pnpdeviceid((QChar*)rr,::SysStringLen(rr));
       //QString pnpp((QChar*)pnp,::SysStringLen(pnp));
       //сравниваем два номера pnpdeviceid в случае если номер совпадает
               //значит устройство является сменным носителем ифнормации
 
       if (pnpdeviceid.contains(serial))
       {
 
           BSTR g=vtProp2.bstrVal;
           QString friendlyname((QChar*)g,::SysStringLen(g));
           drl=friendlyname;
       }
   }
   if (pLoc)
       pLoc->Release();
   if (pSvc)
       pSvc->Release();
   if (pclsObj)
       pclsObj->Release();
   if (pEnumerator)
       pEnumerator->Release();
 
   CoUninitialize();
   qDebug()<<"FFFFF="<<drl;
   return drl;
}
 
не пойму в чем проблема в отладчике drl--не пустое значение
а после
Код
C++ (Qt)
QString gg=future.result();
а в gg-пишется пустота
Страниц: 1 2 [3] 4 5 ... 23

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