У меня есть проект, который использует PyQt5 для создания графического интерфейса. Я использовал StyleSheet, чтобы изменить внешний вид виджета. Все хорошо, но есть только 1 вещь Это не хорошо. Речь идет о левом и центральном поле текста в текстовом поле. Я пробовал просматривать stackoverflow и форум Qt, но не нашел никого, у кого была бы возможность выделить текст. Это изображение моего графического интерфейса:
Это моя таблица стилей:
QWidget{
background-color: rgb(0, 0, 0);
border-bottom-right-radius:10px;
border-top-right-radius:10px;
border-bottom-left-radius:10px;
border-top-left-radius:10px;
color: rgb(0, 0, 0);
}
QSpinBox {
color: rgb(0, 0, 0);
background-color: rgb(0, 0, 0);
border-bottom-right-radius:10px;
border-top-right-radius:10px;
border-bottom-left-radius:10px;
border-top-left-radius:10px;
color: rgb(255, 255, 255);
background-color: rgb(150, 150, 150);
font: 75 10pt "MS Shell Dlg 2";
}
QSpinBox::up-button {
width:20px;
height:20px;
}
QSpinBox::down-button {
width:20px;
height:20px;
}
QDoubleSpinBox {
color: rgb(0, 0, 0);
background-color: rgb(0, 0, 0);
border-bottom-right-radius:10px;
border-top-right-radius:10px;
border-bottom-left-radius:10px;
border-top-left-radius:10px;
color: rgb(255, 255, 255);
background-color: rgb(150, 150, 150);
font: 75 10pt "MS Shell Dlg 2";
}
QDoubleSpinBox::up-button {
width:20px;
height:20px;
}
QDoubleSpinBox::down-button {
width:20px;
height:20px;
}
QTextEdit{
border-bottom-right-radius:20px;
border-top-right-radius:20px;
border-bottom-left-radius:20px;
border-top-left-radius:20px;
background-color: rgb(150, 150, 150);
color: rgb(255, 255, 255);
}
QComboBox{
border-bottom-right-radius:5px;
border-top-right-radius:5px;
border-bottom-left-radius:5px;
border-top-left-radius:5px;
background-color: rgb(150, 150, 150);
color: rgb(255, 255, 255);
}
Как выровнять текст в Qt с помощью таблицы стилей? (Я плохо говорю по-английски, поэтому извините, если мой вопрос покажется странным)
Обновление: это изображение моего текстового поля:
Пробовали QTextEdit { margin-top: 0px; margin-bottom: 0px; margin-left: 10px; margin-right: 2px; }
?
Не работает @Pamputt, но спасибо.
Извините, но ваш вопрос неясен. Какой текст вы не можете выровнять? Вы имеете в виду четыре QTextEdit, выбранные на втором рисунке? Если это так, то, похоже, вы хотите использовать их как однострочное поле ввода, а использование QTextEdit неверно, поскольку оно предназначено для форматированного многострочного текста. Используйте QLineEdit, который по умолчанию предоставляет свойство alignment
.
А еще, несвязанное, но чрезвычайно важное: 1. всегда используйте менеджеры по расположению , никогда не полагайтесь на фиксированную геометрию; 2. избегайте QWidget {}
без конкретных селекторов, иначе он будет унаследован *всеми виджетами и вызовет проблемы в сложных: если вы хотите установить свойства для центрального виджета, используйте селектор имени объекта: в вашем случае это возможно, будет QWidget#centralwidget
(но проверьте правильность имени в инспекторе объектов, это виджет верхнего уровня главного окна).
Возможно, вы можете попробовать следующий QSS QTextEdit{padding-left:5px;padding-top:5px;
работает, спасибо :))
Какой текст вы хотите выровнять? Ваш QLabel (как это работает, как работает и т. д.)? Вы хотели бы выровнять их слева, а не справа? Или это текст в кнопке (xóa khach hàng, ...)? Или что-то другое?