Запитай експерта: джон севілл. Частина vii
У Windows 10 передбачена функція перевірки системи зберігання даних Storage Sense, яка вперше стала доступна в Windows…
QString s = settings-gt; value ( "my string", "my default value"). ToString () -
QString s-settings-gt; setValue ( "my string", s) -
settings-gt; setValue ( "state", saveState ()) -
restoreState (settings-gt; value ( "state", QByteArray ()) .toByteArray ()) -
tb _ my _ toolbar = new QToolBar-tb _ my _ toolbar-gt; setObjectName ( "tb _ my _ toolbar") -
my _ splitter-gt; restoreState (settings-gt; value ( "splitterSizes"). toByteArray ()) -
settings-gt; setValue ( "splitterSizes", my _ splitter-gt; saveState ()) -
QString qstring _ load (const QString SfileName, const QString Scharset) QFile :: Text)) return QString () - QTextStream in (Sfile) -in. setCodec (charset. toAscii ()) - return in.readAll () -
QString text = qstring _ load ( "/test/test.txt", "cp1251") -
QStringList 1 = text.split ( "n") -
QStringList 1 = qstring _load (fname) .split ( "n") -
QHash my _ table-
QHash hash _ load _ keyval (const QString Sfname) {// Сюди будемо записувати розібрані рядки: QHash result - // Читаємо з файлу в список: QStringList l = qstring _load (fname) .split ( "n") - // Проходимо за всім списком: foreach (QString s, l) {// Ділимо поточний рядок списку на два елементи, // розділені знаком рівності: QStringList sl = s.split ( "=") - // Якщо елементів більше 1, все правильно, // вставляємо ключ і значення в хеш-таблицю if (sl.size () gt; 1) result.insertMulti (sl [0], sl [1]) -} // Повертаємо заповнену таблицю: return result-}
class CODTXMLWalker: public QObject {Q _ OBJECT public: QString data- QDomDocument doc-void step (QDomNode node) -} -
void CODTXMLWalker :: step (QDomNode node) {// Для всіх дітей вузла node проходимо в циклі: for (QDomNode n = node.firstChild () -! n.isNull () - n = n.nextSibling ()) {// перетворимо вузол (поточний «дитя») в елемент: QDomElement e = n.toElement () - // Якщо елемент нічого не містить, переходимо до наступного: if (e.isNull ()) continue - // Якщо ім`я вузла одно «text : s », у нас можливий відступ: if (e.nodeName () ==" text: s ") {// Перевіряємо наявність відступу: QString indent = e.attribute (" text: c ") - // Якщо є відступ , створюємо рядок з прогалин у кількості // значень відступу: if (! indent.isEmpty ()) {QString fillval-fillval = fillval.fill ( `indent.toInt ()) - // І додаємо цей рядок до data: data. append (fillval) -}} else // Інакше, якщо такі-то імена у лов, то у нас параграф або заголовок if (e.nodeName () == "text: p" || e.nodeName () == "text: h") {// Якщо текст в них не порожній, додаємо його до data if (! e.text (). isEmpty ()) {data.append (e.text ()) - data.append ( "n") -}} // Якщо у вузла є діти, робимо рекурсивний виклик step, // щоб цих дітей теж обробити: if (e.hasChildNodes ()) step (n) -}}
QString string _ data = // Читаємо сюди вміст content.xml // Створюємо парсер: CODTXMLWalker walker - // Встановлюємо йому вміст, що викликає розбір оного: walker-gt; doc.setContent (string _ data) - // Тепер проходимо по всіх елементів розібраного XML-файла: walker-gt; step (walker-gt; doc.documentElement ()) - // Виводимо витягнутий текст на консоль: qDebug () lt; lt; walker-gt; data-
QFile file (filename) -if (! File.open (QIODevice :: ReadOnly | QIODevice :: Text)) return-QXmlStreamReader xml (Sfile) -while (! Xml.atEnd ()) {xml.readNext () - if ( xml.isStartElement ()) {qDebug () lt; lt; xml.name (). toString () - QXmlStreamAttributes attrs = xml.QXmlStreamReader :: attributes () - for (int i = 0 i lt; attrs.count () - qDebug () lt; lt; attrs [i] .name (). toString () lt; lt; "=" lt; lt; attrs [i] .value (). toString () -}}
У Windows 10 передбачена функція перевірки системи зберігання даних Storage Sense, яка вперше стала доступна в Windows…
Відео: Частина 15. Створення WIX інсталятора для Bundle Після побіжного знайомства з утилітами, які можуть полегшити…
Переклад всередині не спадкоємців QObject [/ Center] На окрему увагу заслуговує переклад всередині класів, які не є…
Відео: Уроки C #. Делегати і подіїделегати У Vala і Genie немає покажчиків на функції. Якщо необхідно передати функцію…
Схожим чином можна організувати і атаки на переповнення буферів, розташованих в купі. Адже один із часто…
Відео: Мова програмування Сі Урок 12 Рядки символьні масивирядки Всі рядки в Vala мають формат cp1251. Тип string…
Для Qt можна написати приблизно таку функцію, що повертає список словникових модулів без розширень файлу (в параметрі…
Нарешті ми підійшли до реалізації логіки програми. Спочатку напишемо функцію, яка буде викликатися при натисканні на…
Відео: Бази даних, лекція №1 (2013) Об`єкти SqlExp кардинально полегшують створення запитів, але створення самих…
Відео: Як змінити перемикання мови введення в #Windows 10клас QTranslator В Qt завдання перекладу покладено на клас…
Відео: [Warcraft] Сполучення рас і класів. пояснення Бібліотека Juce створювалася за принципом максимальної…
Відео: Террарія Проходження - [1] The Jucer дозволяє дуже просто і елегантно працювати з будь-якими бінарними…
Відео: Перевірити написання слів в Word А як те ж саме зробити в Qt? Припустимо, у нас є віджет, в якому відображається…
Відео: Overwatch: All 21 Ultimate Abilties Розміщувати віджети, задаючи їх координати вручну, вкрай незручно. Для…
У цій статті піде мова про Hunspell (https://hunspell.sourceforge.net). Скажу відразу: якщо вам достатньо восьмибітних…
Відео: 30.Python для Початківців - Робота з Базами Даних SQL Server В U ++ є спеціальний віджет SqlArray, який…
Відео: Створюємо інтерфейс програми на Qt 4 + VS 2010. А.С Коли дозріває сир, його вживають в їжу. Коли дозріває…
Від труднощів збірки перейдемо до неясним місцях у використанні Phonon. Phonon підтримує ті мультимедійні формати, які…
Відео: Програмування. Мова Сі. Математичні операції. Змінні. Типи змінних. урок 2.0 Що ж являє собою Seed7, чи схожий…
Відео: GTK using Code Blocks Tutorial for BEGINNERS! Дана стаття присвячена використанню движка перевірки правопису в…
В першу чергу згадаю допоміжні функції. Вони не належать до «гарячих клавішах» безпосередньо, але…