У меня возникают проблемы при создании вкладок в QTextEdit того же размера, что и некоторое количество пробелов, скажем, 4.
Я использую Qt 4.8.1 на Mac и пробовал несколько разных моноширинных шрифтов. В каждом случае я пытаюсь использовать fontMetrics.width () и fontMetrics.boundingRect (). Width (). Передача » и умножение на 4 и пропуск «» возвращают мне постоянные размеры, но когда я устанавливаю ширину ограничителя табуляции, он немного отключается. Что еще хуже, ошибка накапливается. Если я наберу 6 вкладок и ниже 6 * 4 пробелов, курсор окажется в совершенно другом месте.
Даже подкорректировав число вручную, я не смог найти целое число пикселей, которое точно соответствует и сохраняет согласованность вкладок и эквивалентных пробелов.
Кто-нибудь еще сталкивался с этой проблемой? Нашли ли вы решение, кроме как заменить табуляцию пробелами?
Вы пытались использовать это?
QFontMetrics::tightBoundingRect(" ")
Я нашел предложение здесь, но, к сожалению, не упоминает, было ли оно успешным: http://lists.qt.nokia.com/pipermail/qt-interest/2009-June/007924.html
Пожалуйста, дайте мне знать, если это работает для вас 🙂
У меня была такая же проблема с тобой, и я звоню setTabStopWidth(4 * fontMetrics().width(' '));
в конструкторе QPlainTextEdit. Но когда я вызываю его после конструктора, он может работать! Я не знаю магию этого …