2013-05-06 6 views
0

Я пытаюсь открыть свой USB-ключ Huwawei USB с помощью «QextSerialPort».QWinEventNotifier: Может использоваться только с потоками, начатыми с QThread

Мои данные ПОРТ являются

Port Name: 
Product ID: 
Physical Name: \Device\000000ca 
Vendor Id: 
Friend Name: SB 

Port Name: 
Product ID:? 
Physical Name: \Device\USBPDO-10 
Vendor Id: ? 
Friend Name: TH 

Port Name: COM3 
Product ID: 
Physical Name: \Device\BthModem0 
Vendor Id: 
Friend Name: Standard Serial over Bluetooth link (COM3) 

Port Name: COM4 
Product ID: 
Physical Name: \Device\BthModem2 
Vendor Id: 
Friend Name: Standard Serial over Bluetooth link (COM4) 

Port Name: COM5 
Product ID: 
Physical Name: \Device\BthModem1 
Vendor Id: 
Friend Name: Standard Modem over Bluetooth link 

Port Name: COM6 
Product ID:? 
Physical Name: \Device\000000e2 
Vendor Id: ? 
Friend Name: HUAWEI Mobile Connect - 3G Application Interface (COM6) 

Port Name: COM7 
Product ID:? 
Physical Name: \Device\000000e0 
Vendor Id: ? 
Friend Name: HUAWEI Mobile Connect - 3G Modem 

Port Name: COM8 
Product ID:? 
Physical Name: \Device\000000e3 
Vendor Id: ? 
Friend Name: HUAWEI Mobile Connect - 3G PC UI Interface (COM8) 

Я пытаюсь открыть мой USB-ключ, так что я могу отправить SMS. Ниже мой код для открытия

#include "MyClass.h" 
#include <qstring.h> 
#include <qdebug.h> 


int main() 
{ 
    QextSerialPort *port = new QextSerialPort("COM7"); 
    port->open(QIODevice::ReadWrite); 
    cout << port->isOpen(); 

    system("pause"); 
    return 0; 

} 

Когда я запускаю этот код, что я получаю

QWinEventNotifier: Can only be used with threads started with QThread 
1 

Это показывает идентификатор порта Open, но что об этом сообщении? Означает ли это, что я не могу продолжить работу с другим кодом? Я хочу знать это, прежде чем я что-нибудь придумаю. Пожалуйста помоги!

+0

И, я звоню к правильному порту? Я очень новичок в программировании QT и USB « –

+0

Любые причины не использования QtSerialPort (официального дополнения Qt 5), кстати? – lpapp

ответ

3

Скорее всего, вам нужно создать QApplication, без него много вещей, как события и сигналы/слоты не будут работать:

int main() 
{ 
    QApplication app; 

    QextSerialPort *port = new QextSerialPort("COM7"); 
    port->open(QIODevice::ReadWrite); 
    cout << port->isOpen(); 

    system("pause"); 

    return app.exec(); 
} 
+0

ha, мне нужно набрать быстрее: P – UmNyobe

+0

Спасибо за ответ. Но какой файл заголовка я должен импортировать? Я не могу найти «qapplication.h» –

+0

Если вы не создаете приложение GUI, используйте [QCoreApplication] (http://qt-project.org/doc/qt-4.8/qcoreapplication.html) вместо – thuga