Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
PyQt5

ScrollBar в QTextEdit

12.08.2020, 20:09. Показов 3747. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Кто подскажет, что за ерунда, и как исправить? (Ползунок поверх стрелок).
Миниатюры
ScrollBar в QTextEdit  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2020, 20:09
Ответы с готовыми решениями:

Изменять значение ScrollBar, изменяя значение другого ScrollBar
Подскажите пож-та как взаимосвзять scrollbar'ы в basic 6, что бы при увеличение значения на одном скроле, на втором оно уменьшалось?

StringGrid2>ScrollBar>Poistion = StringGrid1>ScrollBar>Poistion
Здрасте :) Нигде не могу отрыть (или мозги уже не варят%-)) - как получить позицию ScrollBar`a мне нужно чтоб ScrollBar у...

QTextEdit
Привет подскажите пожалусто как сделать в текстовом редакторе поле на котором можна ставить дебаг поинт и собствено как их сделать.

15
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
13.08.2020, 08:55
Lekks, использовать QSS.
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
13.08.2020, 09:58  [ТС]
DmFat, а поподробнее? Что именно, какой атрибут править-то?
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
13.08.2020, 10:28
Lekks, каким образом ты изменил стиль QTextEdit?
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
13.08.2020, 10:46  [ТС]
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class ContentDescription(QtWidgets.QVBoxLayout):
    def __init__(self):
        super().__init__()
        self.text_area = QtWidgets.QTextEdit()
        self.text_area.setStyleSheet('border: none; font-family: Times New Roman;'
                                     'font-size: 16px; '
                                     'font-weight: bold; '
                                     'padding: 0px 5px;')
        self.addWidget(self.text_area)
 
    def replace_text(self, document_path):
        with open(document_path, 'r', encoding='utf-8') as f:
            my_text = f.read()
        self.text_area.setText(my_text)
        self.text_area.setAlignment(QtCore.Qt.AlignJustify | QtCore.Qt.AlignTop)
 
    def clear_description(self):
        self.removeWidget(self.text_area)
        self.text_area.deleteLater()
        self.text_area = None
DmFat, вот код
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
13.08.2020, 11:09
Лучший ответ Сообщение было отмечено Lekks как решение

Решение

Lekks, ну вот из за этого и проблема:

Python
1
2
3
4
5
6
7
8
9
self.text_area.setStyleSheet("""
QTextEdit {
    border: 0px;
    font-family: Times New Roman;
    font-size: 16px;
    font-weight: bold;
    padding: 0px 5px;
}
""")
1
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
13.08.2020, 11:15  [ТС]
DmFat, спасибо! Не мог бы подробнее механизм пояснить еще?
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
13.08.2020, 14:22
Lekks, Если честно обычно создают файл, например dark_theme.qss. Полностью туда вписывают параметры всех виджетов, и потом при старте программы его подгружают.

В моем примере, я указал что у виджета QTextEdit вот такие атрибуты будут иметь вот такие значения, все что не указано остается по дефолту. Твой пример, можно изречь так: Данный виджет и все виджеты принадлежащие ему, будут иметь вот такие атрибуты, в итоге QScrollBar который находился в твоем виджете тоже применил эти параметры.
1
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
13.08.2020, 14:31  [ТС]
DmFat, с файлом-то ясно, просто у меня не так много стилей, проще через setStyleSheet указать. А по механизму - понял, покопаю еще в этом направлении, чтоб поглубже разобраться. Надо просто понять, какой атрибут будет на чайлды виджета влиять, а какой нет, и так для каждого стандартного виджета. Спасибо еще раз!
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
13.08.2020, 14:43
Lekks, Держи пример, сразу говорю, его стоит еще дописывать и дописывать.

Кликните здесь для просмотра всего текста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
QWidget {
    color: #FFFFFF;
    background-color: #303030;
}
 
 
QWidget:disabled {
    color: #949494;
    background-color: #303030;
}
 
QMenuBar::item, QMenu::item {
    padding: 2px 6px;
    border: 1px solid #000000;
    background-color: #303030;
}
 
QMenuBar::item:selected, QMenu::item:selected {
    border-style: outset;
    background-color: #949494;
}
 
QMenuBar::item:pressed, QMenu::item:pressed{
    border-style: inset;
    background-color: #51cdd6;
}
 
QGroupBox {
    border: 2px solid #949494;
    padding: 16px 0px 0px 0px;
    border-radius: 16px;
}
 
QGroupBox::title {
    padding: 0px 3px 3px 3px;
    border: 2px solid #949494;
    border-bottom-right-radius: 10px;
}
 
QLineEdit, QComboBox, QSpinBox, QDoubleSpinBox {
    border: 0.1em solid #000000;
}
 
QLineEdit:enabled, QComboBox:enabled, QSpinBox:enabled, QDoubleSpinBox:enabled {
    border: 0.1em solid #51cdd6;
}
 
QLineEdit:enabled:hover, QComboBox:enabled:hover, QSpinBox:enabled:hover, QDoubleSpinBox:enabled:hover {
    border: 0.15em solid #51cdd6;
}
 
QCheckBox::indicator {
    width: 10; height: 10;
    border: 0.1em solid #000000;
}
 
QCheckBox::indicator:checked {
    background-color: #51cdd6;
}
 
QCheckBox::indicator:unchecked {
    background-color: #949494;
}
 
QCheckBox::indicator:checked:enabled {
    background-color: #51cdd6;
    border: 0.1em solid #51cdd6;
}
 
QCheckBox::indicator:unchecked:enabled {
    background-color: #949494;
    border: 0.1em solid #51cdd6;
}
 
QCheckBox::indicator:checked:enabled:hover, QCheckBox::indicator:unchecked:enabled:hover {
    border: 0.15em solid #51cdd6;
}
 
QTextEdit:enabled {
    border: 0.15em solid #51cdd6;
    border-radius: 1em;
}
 
QToolButton:hover {
    border: 0.15em solid #51cdd6;
}
 
QAbstractItemView {
    alternate-background-color: #171717;
}
 
QHeaderView {
    background-color: #171717;
    color: #FFFFFF;
}
 
QHeaderView::section {
    background-color: #171717;
    color: #FFFFFF;
}
1
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
13.08.2020, 14:54  [ТС]
DmFat, спасибо. Так я умею))) Просто не до конца понимаю - когда надо выделять отдельные элементы, когда можно просто общий стиль написать, как у меня в коду было. То есть нет видения взаимовлияния.
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
13.08.2020, 15:01
Lekks, по сути только цвет можно делать общим, все остальное подлежит индивидуальной настройке, особенно если меняешь что то из box-model, то все взаимозависимые виджеты начинают плыть.
1
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
13.08.2020, 19:36  [ТС]
DmFat, может еще подскажешь. Сделал делегат для QTableView:

Python
1
2
3
4
5
6
7
8
9
10
11
class ColorDelegate(QtWidgets.QStyledItemDelegate):
    def paint(self, painter, option, index):
        model = index.model()
        r = index.row()
        color = self.calculate_color(model, r)
        if color != index.data(QtCore.Qt.BackgroundRole):
            print(color.color().name())
            for i in range(model.columnCount()):
                model.setData(model.index(r, i), color, role=QtCore.Qt.BackgroundRole)
            print(model.data(model.index(r, 2), role=QtCore.Qt.BackgroundRole))
        super(ColorDelegate, self).paint(painter, option, index)
Не работает. Точнее работает, но цвет не пишет в модель.
Миниатюры
ScrollBar в QTextEdit  
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
13.08.2020, 20:24  [ТС]
Решил конечно через переопределение data модели, но почему делегат не заработал? )))
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2695 / 1601 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
14.08.2020, 07:38
Lekks, если я не ошибаюсь, делегаты нужны чтобы изменять содержимое ячеек при помощи кастомных виджетов, а не для установки цвета ячейки, правильное решение это в QAbstractTableModel возвращать нужный цвет переопределив метод data.
0
243 / 178 / 73
Регистрация: 17.10.2018
Сообщений: 749
14.08.2020, 07:39  [ТС]
DmFat, делегат я где-то подсмотрел, было указано, что рабочий вариант, было интересно попробовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.08.2020, 07:39
Помогаю со студенческими работами здесь

QTextEdit in Qt-5.11
Здравствуйте! Не скажет ли кто, в чём различия использования переменной типа QTextEdit в Qt-5.11 и в Qt-4.8? М.б., в Qt-5.11 надо...

QTextEdit
Добрый вечер у меня произошла вот такая проблема. Суть: Есть у меня класс TextEdit отнаследованый от QTextEdit. Значит я его вызываю в...

QTextEdit-абзац
Допустим я создал два обьекта QTextEdit. и в первом написал текст: .................................................. Модуль Qt...

Поиск в QTextEdit
Суть в том, что есть текстовый файл с подобными данными: Температура: 23 Давление: 101325 14:17:52 Запрос: 0xB7 14:17:53...

QTextEdit-выделение
я создал два обьекта QTextEdit в одном предложение в другом перевод ,как мне сделать чтобы когда я выделил слово то выделилься...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru