分类 Qt GUI 下的文章


*.h

//=========================================

class IMAGE_SHOW_RPC_MWIN : public QMainWindow
 {
     Q_OBJECT
 
     public:
         IMAGE_SHOW_RPC_MWIN(QWidget *parent = nullptr);
         ~IMAGE_SHOW_RPC_MWIN();        
 
 
     private:
 
 
     private Q_SLOTS:
         void    OnBT_Connect();        
         void    OnBT_Disconnect();     
         void    OnTimeout();
 
     private:
         Ui::IMAGE_RPC    *mpUI;        
         std::string      mIP;
         bool             mConnected;   
         std::shared_ptr<rest_rpc::rpc_client>   mpNetClient;
         QTimer           *mpTimer;     
 };



*.cpp

//=========================================

QTimer           *mpTimer;


mpTimer = new QTimer(this);


connect(mpTimer, SIGNAL(timeout()), this, SLOT(OnTimeout()));

mpTimer->start(100);   // mpTimer->stop();



编译错误:

QHostAddress: No such file or directory


解决方法:

在CMakeLists.txt中加入如下内容:

find_package(Qt5Network  REQUIRED) 或者find_package(Qt5 COMPONENTS Core Widgets Xml Network REQUIRED)



 include_directories(
   ${EIGEN3_INCLUDE_DIR}
   ${Qt5Core_INCLUDE_DIRS}
   ${Qt5Widgets_INCLUDE_DIRS}
   ${Qt5Gui_INCLUDE_DIRS}
   ${Qt5Network_INCLUDE_DIRS}
   ${CMAKE_CURRENT_SOURCE_DIR}/include/
 )


target_link_libraries(show_image_RPC
   ${QT_LIBRARIES}
   Qt5::Widgets
   Qt5::Network
 )





采用 QIntValidator或QDoubleValidator


mpUI->LE_WGS84_lat_txt->setValidator( new QDoubleValidator(0.0, 90.0, 10, this) );

mpUI->LE_WGS84_alt_txt->setValidator( new QDoubleValidator(0.0, std::numeric_limits<double>::max(), 10, this) );

mpUI->LE_UTM_ENU_x->setValidator(new QDoubleValidator());

void loop() {
myIMU.readSensor();
xyzFloat gValue = myIMU.getGValues();
xyzFloat gyr = myIMU.getGyrValues();
xyzFloat magValue = myIMU.getMagValues();
float temp = myIMU.getTemperature();
float resultantG = myIMU.getResultantG(gValue);

Serial.print("{gyro}");
Serial.print(gyr.x);
Serial.print(",");
Serial.print(gyr.y);
Serial.print(",");
Serial.print(gyr.z);
Serial.print("\n");
Serial.print("{acce}");
Serial.print(gValue.x);
Serial.print(",");
Serial.print(gValue.y);
Serial.print(",");
Serial.print(gValue.z);
Serial.print("\n");

Serial.print("{magn}");
Serial.print(magValue.x);
Serial.print(",");
Serial.print(magValue.y);
Serial.print(",");
Serial.print(magValue.z);
Serial.print("\n");
delay(10);

}