crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

История благодарностей участнику iReset ::: Спасибо сказали: 23 раз(а)
Дата поста: В теме: За сообщение: Спасибо сказали:
17.2.2013, 20:06 Работа с QSplitter в QtCreator
Цитата(Алексей1153 @ 17.2.2013, 13:38) *
...а вот после правки в дереве всё ок видно...
Если бы Creator не поддерживал QSplitter, то он у тебя и не появился бы. Раз появился в дереве, значит, поддерживает.

Цитата(Алексей1153 @ 17.2.2013, 13:38) *
...ну там терять особо и негде, его там нету у меня...
Просто ты не там ищешь. Кидаешь на форму два элемента, которые надо поместить на QSplitter. Щелкаешь по первому, затем с нажатой Ctrl по второму - выделяешь их. Затем правой клавишей мыши по одному из них -> Lay out -> Lay out ... in Splitter (либо на панели управления кнопки загораются).
Алексей1153,
29.1.2013, 19:24 Слоты или как-то иначе
Цитата(Artem @ 29.1.2013, 19:30) *
А без использования класса можно как-то реализовать?

Цитата(Artem @ 29.1.2013, 14:36) *
Не могу понять как с помощью слотов организовать.

А как ты хочешь использовать слоты без класса?
Artem,
26.1.2013, 10:07 Помогите с регулярным выражением.
Цитата(Razerio @ 25.1.2013, 23:55) *
Никак не получается составит работающее регулярное выражение.
...
У меня получилось так:
  QString str ("Redistributions in binary form *must reproduce the above copyright notice, this list of <a href='http://google.com/\"><span style=\" text-decoration: underline;\">*conditions  and *the following</span> *disclaimer</a> in the documentation and/or other *materials provided with the *distribution.");
  QRegExp re ("(\\*\\w+\\b)(?:[^*]*<a\\s(?:.(?!<\\/a>))*.<\\/a>)?");
  int pos = 0;
  while ((pos = re.indexIn(str, pos)) != -1) {
    qDebug () << re.cap(1);
    pos += re.matchedLength();
  }

Выражение написано с условием того, что тег <a> не имеет вложенности и имеет параметр (например, href), т.е. не "<a>".
Выражение "(\\*\\w+\\b)" хорошо было бы доработать с учётом того, что могут быть фразы типа "111*222" или "привет*мир". Но тут нужны более чёткие входные условия.
При необходимости могу разъяснить выражение по частям.


Цитата(Litkevich Yuriy @ 26.1.2013, 4:45) *
это кость в горле Регулярных выражений, с помощью них невозможно отслеживать "парные скобки", т.е. элементы играющие их роль
Ну невозможно, это все-таки очень жестко сказано. Даже с помощью регулярных выражений Qt можно составить выражение, позволяющее производить поиск на любой, но, правда, заранее известный, уровень вложенности.
О вложенности в других языках
В Perl возможен просмотр на любой, неизвестный заранее, уровень вложенности с помощью динамических регулярных выражений, "(??{$re})".
В .NET это возможно с помощью конструкции-счётчика "(?<DEPTH>)".
В PHP можно использовать рекурсивные регулярные выражения "(?R)".
Razerio,
24.1.2013, 19:19 Снять выделение QListWidgetItem
Цитата(alsav22 @ 24.1.2013, 18:28) *
И ещё... Есть ли ли метод, без перебора элементов списка, определить наличие или отсутствие в нём выделенного элемента?

listWidget->selectedItems ().isEmpty()
вернет true, если нет выделенных элементов.
alsav22,
24.1.2013, 9:40 Синхронизация при сигналах и слотах в разных потоках
Цитата(ssoft @ 24.1.2013, 10:01) *
1. Если передача параметров происходит по значению.
...
то при асинхронном вызове (через очередь сообщений), передаваемые данные копируются и синхронизировать ничего не нужно.

А вот для меня этот ответ не совсем полон и остаются вопросы. Поясню:
1. Все функции в классе QString реентерабельны, за исключением некоторых (тут в самом начале). Т.е. при вызове этих функций уже необходимо обеспечивать блокировки. Другие функции, вроде бы, можно использовать в разных потоках, потому что у нас две копии QString.
Но...
2. QString использует неявное разделение данных (тут 4 абзац). Т.е. обе копии QString будут указывать на одни и те же данные до их изменения.

Что будет при одновременном изменении строки в одном потоке и чтении в другом? Вероятно, каша, поскольку для хранения данных в QString используется структура
    struct Data {
        QBasicAtomicInt ref;
        int alloc, size;
        ushort *data;
        ushort clean : 1;
        ushort simpletext : 1;
        ushort righttoleft : 1;
        ushort asciiCache : 1;
        ushort capacity : 1;
        ushort reserved : 11;
        ushort array[1];
    };

и, естественно, она обновится не атомарно.

Все это мои теоретические выкладки, на практике не проверял.

Цитата(Алексей1153 @ 24.1.2013, 10:12) *
...я именно про случай без ссылок. Я в детали механизма сигналов/слотов глубоко не вникал - вероятно они уже имеют свои синхронизаторы для этого случая ? То есть - в некий "почтовый ящик" значение положилось, а потом его адресат (слот) вытащит, и неважно, что это из другого потока произошло

Я думаю, что если в документации (тут, после примера 3 абзац) прямо сказано, что соединяться можно с использованием соединения через очередь, то это работает.

Цитата(Алексей1153 @ 24.1.2013, 10:12) *
а со ссылками (неважно, кстати, константные или нет) - ну тут и так понятно, что синхронизировать надо

Если речь идёт про классы Qt, то не обязательно, если используются только потокобезопасные функции (тут).
Алексей1153,
14.1.2013, 5:48 Не работает paintEvent
Переменная myClass, на которую указывает p_myClass, - локальная, уничтожается при выходе из конструктора MainWidget, отсюда мусор при работе с p_myClass.
Про p_masterClass ничего сказать по приведенному коду не могу.
QMainWindow,
20.12.2012, 13:33 Электронные книги почти бесплатно
Сайт Books.ru предлагает приобрести электронные версии книг по цене, которую вы сами установите (от 1 рубля). Пока это только книги от издательства "Символ-Плюс", в основном это техническая литература, есть как лажа, так и бестселлеры, как старые, так и новые издания.
Ссылка на список книг.
ViGOur,
20.12.2012, 9:07 Путь из переменной окружения в файле конфигурации проекта. Как?
Цитата(mva @ 19.12.2012, 20:54) *
...как задать путь к хедингам из переменной окружения в файле конфигурации проекта.

Используй оператор $$(...) или $(...). Описано в разделе Переменные "Продвинутого использования qmake".
mva,
10.12.2012, 11:38 Перевод документации Qt4 на русский язык
Цитата(alex977 @ 9.12.2012, 23:22) *
Объединил ПП с ПП iReset от 03.12.2012 (в каталоге tm/tm.2012.12).
Если все нормально - генерируем документацию.

Есть замечания
Раскрывающийся текст

  • В сегменте
    &lt;s325&gt;int&lt;/s325&gt; m_pbuffer_size; &lt;s326&gt;// width==height==size of pbuffer&lt;/s326&gt;
    лучше не переводить (или перевести в скобках) "width==height==size", поскольку это имена переменных-членов pbuffer.
  • В сегменте
    &lt;s353&gt;// now move verts half cube width across so cube is centered on origin&lt;/s353&gt;
    лучше не переводить "verts", поскольку это название переменной. Вариант без перевода в моей ПП.
  • Неполный перевод в сегменте
    &lt;s45&gt;// Scale real value in [-1.0, 1.0] to PCM&lt;/s45&gt;
    вот тут: "в диапазоне [-1.0, 1.0] to PCM".
  • В сегмент
    * \return Data length in bytes.
    попал какой-то мусор (оригинал другого сегмента). В моей ПП перевод есть.
  • Сегменты
    2 protected functions inherited from &lt;a0&gt;QWidget&lt;/a0&gt;
    4 protected functions inherited from &lt;a0&gt;QAbstractItemView&lt;/a0&gt;
    лучше взять у меня, поскольку в текущей версии не согласованы падежи.
  • Перевод сегмента
    By default, this property has a value of 0.
    лучше взять у меня, тогда будет согласованность с другими аналогичными переводами.
  • Сегмент
    widget&lt;s246&gt;-&lt;/s246&gt;&lt;s247&gt;&gt;&lt;/s247&gt;makeCurrent(); &lt;s248&gt;// The current context must be set before calling Scene's constructor&lt;/s248&gt;
    не переведен. В моей ПП перевод есть.


И еще вроде в ПП не взят перевод qcursor.html от motoden.

Вроде всё.
alex977, Litkevich Yuriy,
26.10.2012, 18:10 вопрос по toInt(&ok,0)
Цитата(qt_user @ 26.10.2012, 18:53) *
ноль в
Цитата
toUInt(&ok,0);

стоит для автоматического определения системы счисления.

В описании функции toInt написано, как определяется основание числа: шестнадцатеричное число должно начинаться с "0x".
qt_user,
20.10.2012, 9:26 Помогите перевести термины
Цитата(motoden @ 20.10.2012, 8:37) *
Друзья, как перевести слово hotspot в этом контексте:
"Qt has a number of standard cursor shapes, but you can also make custom cursor shapes based on a QBitmap, a mask and a hotspot." ?
"Горячая точка".

Цитата(motoden @ 20.10.2012, 8:37) *
И кстати, словарь терминов для скачки недоступен по ссылке приведённой в первом посте этой темы. Сделайте что-нибудь.
Исправил.

Цитата(motoden @ 20.10.2012, 8:37) *
А ещё как перевести слова bitmap и pixmap в этом контексте:
"If you want to create a cursor with your own bitmap, either use the QCursor constructor which takes a bitmap and a mask or the constructor which takes a pixmap as arguments." ?
"bitmap" - "битовое изображение", "pixmap" - "растровое изображение".

Цитата(motoden @ 20.10.2012, 9:32) *
А ещё как перевести вот это: "It is possible that some cursors will be taken from the Xcursor theme, while others will use an internal bitmap cursor." ?
"Вполне возможно, что некоторые курсоры будут взяты из темы Xcursor, в то время как другие будут использовать внутренний битовый курсор."
motoden,
16.10.2012, 6:40 Навигация в QListView
Возможно, поможет сигнал currentChanged модели выбора selectionModel().
zoonman,
4.10.2012, 19:25 QTableWidget возвращение указателя
Цитата(__ilya__ @ 4.10.2012, 16:54) *
есть таблица QTableWidget, в нее с помощью метода setCellWidget, вставлены объекты типа QSpinBox.
Как можно получить указатель QSpinBox, выбранной ячейки QTableWidget?

(QSpinBox *) tableWidget->cellWidget (row, col);

__ilya__,
4.10.2012, 12:27 Число ли в QString?
Или так:
bool ok;
QString ("0xFF").toInt (&ok, 0);
qDebug () << ok;

Либо toDouble(), зависит от постановки. Виноват, косячнул.
qt_user,
25.9.2012, 17:04 Qt style sheet или использование QSize?
Цитата(AD @ 25.9.2012, 13:27) *
QFrame такие вещи поддерживает ну и в порядке наследования QDialog тоже.

А точно поддерживает? Насколько я понимаю, для большинства виджетов, если не указано иное (а для QFrame не указано), свойство width не поддерживается. А нужно оно для установки ширины субэлементов. Хотелось знать, где я ошибаюсь. (Без сарказма)

Цитата(AD @ 25.9.2012, 13:27) *
можно показать, где написано про пиксели? В документации по этим функциям такой строчки не нашел.

В свойствах minimumWidth, minimumHeight, maximumWidth, maximumHeight указаны пиксели. И хотя в других свойствах явного указания на них нет, было бы странно ожидать другого.
AD,
25.9.2012, 12:18 Qt style sheet или использование QSize?
Цитата(AD @ 25.9.2012, 12:33) *
Необходимо сделать диалоговое окно жестких размеров 720X576 пикселей. Пробовал с помощью stylesheet:
...
Но это не помогает. Насколько я знаю, при указании setMinimumSize u setMaximumSize указываются размеры не в пикселях. Кто-нибудь подскажет формулу корректного перевода или же корректного style-sheet?

А чем не подходит setFixedSize()?
В этой функции, как и в setMinimumSize(), и в setMaximumSize() размеры указываются именно в пикселах.
Кстати, QDialog не поддерживает свойства width и height таблицы стилей.
Да и в принципе про свойства все достаточно подробно вроде описано на русском в документации в разделе Таблицы стилей Qt.
AD,
10.9.2012, 17:46 Помогите исправить ошибку
Цитата(Intry @ 10.9.2012, 18:35) *
А не подскажете, что тут надо подправить?
...
Строчка на которую ругается:
if (ssi_struct.Name != 0)

...

Смотря что сей код должен делать. Вместо нуля посмотри в сторону isEmpty() и isNull().
Intry,
30.8.2012, 9:58 не работает приведение типов на arm
Цитата(igor_bogomolov @ 30.8.2012, 9:26) *
Если у тебя есть ссылка на какую-нибудь оф. документацию, где описано такое поведение, было бы очень здорово.

Ссылок, к сожалению, нет.
Быстрый Google-поиск по фразе "unaligned pointer ARM" дал в результате ссылку на оф.сайт ARM - Unaligned pointers. Надеюсь, поможет.
igor_bogomolov,
30.8.2012, 6:38 не работает приведение типов на arm
Дело в выравнивании адресов на ARM. Т.е. каждый тип должен лежать по адресу, кратному его размеру. При невыровненном доступе будут ошибки чтения. При преобразовании char* к ushort* получается именно такая ситуация.
Если тебе действительно нужно такое преобразование, используй memcpy для копирования 2 байт во временную переменную, как бы странно это ни звучало.
igor_bogomolov,
10.8.2012, 17:10 Передать объект через TCP
Цитата(Norrius @ 10.8.2012, 17:25) *
...будет ли получена из потока вся информация, которая была отправлена с другой стороны? Или только та, что уже пришла? Иначе говоря, будет ли readyRead() вызван, когда данные начинают приходить или когда заканчивают?

Сигнал посылается, как только появляется новая порция данных. QIODevice ничего не знает о том объёме данных, которые нужны принимающей стороне. Новая порция - один сигнал. Информацию о доступном количестве байт можно получить функцией bytesAvailable(). Если данных недостаточно, можно просто их не читать и дождаться ещё одного сигнала. Прочитать порцию нужного размера можно, когда она полностью попадёт в буфер.
Norrius,
27.6.2012, 23:33 Перевод accessible.html
Выложил перевод accessible.html. Снова извиняюсь за то, что взял для перевода тот файл, что уже был в работе.
Буду благодарен, если все же кто-нибудь глянет, правильно ли я все делаю.
Поскольку делаю все первый раз, то во вложении несколько вариантов ПП:
iReset-orig_2012-06-26 - файл проекта из Омеги
iReset-sort_2012-06-26 - отсортированный Олифантом файл проекта
iReset-diff_2012-06-26 - разностная по сравнению с qtrtt_2012.03.08 ПП, созданная с помощью qtmxtools.

UPD: забыл упомянуть, что перевод проверил на версиях 4.6.4 и 4.7.0.
alex977,
6.6.2012, 20:06 CAT и TM
Цитата(ViGOur @ 6.6.2012, 20:06) *
Поправил ссылки и создал симлинк на последнюю память переводов...

Спасибо огромное.

Цитата(ViGOur @ 6.6.2012, 20:06) *
Буду благодарен, если ткнёте носом в ссылку на FTP.

Вот тут.

И еще у меня появились вопросы - задал их в параллельной ветке.
ViGOur,

RSS Текстовая версия Сейчас: 22.11.2024, 4:17