ROS architecture brings several advantages, like being able to reuse the work or research (packages) developed by others. if you read a bit more about ROS ( http://wiki.ros.org/ROS/Introduction , http://wiki.ros.org/ROS/Technical%20O... ) way of working you will understand that you might be able to publish/subscribe (topics) or receive/response (services) to most running nodes, so, you should now identify how to subscribe your Arduino+QT to the:
Pos_pub = rospy.Publisher('imu/HeadingTrue', Pose2D)
PosD_pub = rospy.Publisher('imu/HeadingTrue_degree', Pose2D)
Imu_pub = rospy.Publisher('imu/data', Imu)
topics (the topics are the first parameter inside the parenthesis ;-)). So, be aware of structuring your design, your ROS master must be running somewhere and all external nodes must be connected to it.
The Arduino has I/O pins to communicate to and from, but, you can't run ROS in an Arduino, so you must connect the Arduino to the "OS" where ROS Master is running and get the info from the messages.
There is a package that does the trick for using Arduino with ROS ( http://wiki.ros.org/rosserial_arduino... ), just reed it and look at some projects in github that have use this package.
For QT, I don't see any problem if it is running in a device that can run ROS (Ubuntu). Qt is broadly used by the ROS (c++) community, so you can find plenty of info for configuring it for listening to ROS topics ( http://wiki.ros.org/qt_create/Tutoria... ).
Thanks for providing more info, it is not difficult to set up the project that you have in mind, please, structure your project architecture and start implementing it, if you still have doubts, then start from the basics, reed: https://www.intorobotics.com/ros-tuto...