@MrPanch
Python developer

Как разобраться с парсингом XML в Qt?

Здравствуйте!

Есть устройство, для которого интерфейс написан средствами Qt. Полных исходников для правки нет, но есть конфиг в xml на 1500 строк с большим количеством рисунков и координатами этих рисунков, которые составляют этот самый интерфейс.

Для того, чтобы внести правки в интерфейс, приходится править координаты вручную, собирать cramfs образ, заливать его на устройство и только на нём смотреть, как выглядят внесённые правки.

С Qt ранее не работал, поэтому хотелось бы узнать, есть ли готовые решения для парсинга подобных xml и построение интерфейса по данным координатам в какой-нибудь тулзе. Гугление результатов не дало, поэтому приходится полагать, что парсер придётся писать самому, буду рад, если я не прав.

Подскажите, в какую сторону стоит копать? Буду благодарен любой помощи. Спасибо.

Пример кода:
<?xml version="1.0" encoding="utf-8"?>
<style>
	<Desktop>
		<bkg>
			<x>0</x><y>0</y>
			<w>800</w><h>480</h>
			<url>/project/res/style/main/bkg.jpg</url>
		</bkg>
		<talk>
			<x>23</x>
			<y>314</y>
			<normal>/project/res/style_rus/main/talk_up.png</normal>
			<press>/project/res/style_rus/main/talk_down.png</press>
		</talk>
		<monitor>
			<x>149</x>
			<y>314</y>
			<normal>/project/res/style_rus/main/monitor_up.png</normal>
			<press>/project/res/style_rus/main/monitor_down.png</press>
		</monitor>
		<media>
			<x>401</x>
			<y>314</y>
			<normal>/project/res/style_rus/main/media_up.png</normal>
			<press>/project/res/style_rus/main/media_down.png</press>
		</media>
		<setup>
			<x>653</x>
			<y>314</y>
			<normal>/project/res/style_rus/main/setup_up.png</normal>
			<press>/project/res/style_rus/main/setup_down.png</press>
		</setup>
		<logger>
			<x>275</x>
			<y>314</y>
			<normal>/project/res/style_rus/main/logger_up.png</normal>
			<press>/project/res/style_rus/main/logger_down.png</press>
		</logger>
		<alarmlogger>
			<x>528</x>
			<y>314</y>
			<normal>/project/res/style_rus/main/alarm_logger_up.png</normal>
			<press>/project/res/style_rus/main/alarm_logger_down.png</press>
		</alarmlogger>
	</Desktop>
</style>
  • Вопрос задан
  • 2811 просмотров
Решения вопроса 1
vitaly_KF
@vitaly_KF
Разработчик Qt/C++
Думаю здесь есть то, что тебе нужно: habrahabr.ru/sandbox/61031

Вообще же, в Qt сейчас есть два основных класса для работы с XML - QXmlStreamReader и QXmlStreamWriter.
На этой странице документации начинается описание работы с ними: doc.qt.io/qt-5/qtxml-index.html

А вот здесь находятся готовые примеры по работе с XML: doc.qt.io/qt-5/examples-xml.html
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы