Мета-программирование - это весело, но может быть в пути. Большинство решений здесь затрудняют:
Итак, мое первое предложение состоит в том, чтобы следовать простому / явному пути (работает с любым тестовым бегуном):
import unittest
class TestSequence(unittest.TestCase):
def _test_complex_property(self, a, b):
self.assertEqual(a,b)
def test_foo(self):
self._test_complex_property("a", "a")
def test_bar(self):
self._test_complex_property("a", "b")
def test_lee(self):
self._test_complex_property("b", "b")
if __name__ == '__main__':
unittest.main()
Поскольку мы не должны повторять себя, мое второе предложение основывается на ответе @ Хавьера: включите тестирование на основе свойств , Библиотека гипотез:
@given(st.text(), st.text())
def test_complex_property(self, a, b):
self.assertEqual(a,b)
Чтобы проверить свои конкретные примеры, просто добавьте:
@example("a", "a")
@example("a", "b")
@example("b", "b")
Чтобы запустить только один конкретный пример, вы можете прокомментировать другие примеры (при условии, что пример будет запущен первым). Вы можете использовать @given(st.nothing())
. Другой вариант - заменить весь блок на:
@given(st.just("a"), st.just("b"))
Хорошо, у вас нет разных имен тестов. Но, возможно, вам просто нужно:
Как указано в документации:
void QTextEdit::setAlignment(Qt::Alignment a) [slot]
Устанавливает выравнивание текущего абзаца на a
. Допустимые выравнивания: Qt::AlignLeft
, Qt::AlignRight
, Qt::AlignJustify
и Qt::AlignCenter
(которые расположены по горизонтали).
Ссылка: http://qt-project.org/doc/qt- 5 / qtextedit.html # setAlignment
Итак, как вы можете видеть, вы должны обеспечить некоторое выравнивание каждого абзаца.
Маленький пример:
QTextCursor cursor = ui->textEdit->textCursor();
QTextBlockFormat textBlockFormat = cursor.blockFormat();
textBlockFormat.setAlignment(Qt::AlignRight);//or another alignment
cursor.mergeBlockFormat(textBlockFormat);
ui->textEdit->setTextCursor(cursor);
Какой результат я получаю на своем компьютере?
[/g1]
Или что-то ближе к вашему вопросу:
ui->textEdit->clear();
ui->textEdit->append("example");
ui->textEdit->append("example");
QTextCursor cursor = ui->textEdit->textCursor();
QTextBlockFormat textBlockFormat = cursor.blockFormat();
textBlockFormat.setAlignment(Qt::AlignRight);
cursor.mergeBlockFormat(textBlockFormat);
ui->textEdit->setTextCursor(cursor);
ui->textEdit->append("example");
cursor = ui->textEdit->textCursor();
textBlockFormat = cursor.blockFormat();
textBlockFormat.setAlignment(Qt::AlignCenter);
cursor.mergeBlockFormat(textBlockFormat);
ui->textEdit->setTextCursor(cursor);
Результат:
[/g2]