Форум программистов, компьютерный форум, киберфорум
Python: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
6 / 5 / 1
Регистрация: 12.11.2019
Сообщений: 153
PyQt5

Добавить в QLabel иконку и текст

03.12.2021, 00:45. Показов 8464. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Возможно ли добавить иконку и текст в один Qlabel и какие есть вообще варианты(кроме как преобразовать в richtext)?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2021, 00:45
Ответы с готовыми решениями:

Вставить в QLabel иконку (.ico) нужного размера
День добрый! :) Использую Qt 5.4. И последний Qt Designer. Собственно дизайн формы реализовываю средствами дазайнера и хотелось избежать...

Мигающий текст в QLabel
Идея в следующем : интерфейс на 3 строчки по 8 знакомест на каждой(24 символа), планировал для упрощения расписать через 3 label'а. ...

Как сделать текст в QLabel многострочным
Доброго времени суток. Ситуация такая, я добавляю в Label достаточно большой текст в несколько строк и часть текста не видна поскольку...

18
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
03.12.2021, 09:09
Возможно.
В Qt возможно все.
0
6 / 5 / 1
Регистрация: 12.11.2019
Сообщений: 153
03.12.2021, 09:12  [ТС]
А как это возможно?
0
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
03.12.2021, 11:29
Цитата Сообщение от Lapys Посмотреть сообщение
А как это возможно?
переопределять метод отрисовки

IMHO, проще 2 QLabel для этой цели.
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
03.12.2021, 13:44
... или свой виджет написать.
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
04.12.2021, 12:48
Цитата Сообщение от Lapys Посмотреть сообщение
Возможно ли добавить иконку и текст в один Qlabel и какие есть вообще варианты(кроме как преобразовать в richtext)?
1.вы не путаете иконку с картинкой?
2. richtext для того и придуман, чтобы QLabel могла разное содержимое визуализировать
Python
1
2
3
4
5
6
7
8
from PyQt5 import Qt
app = Qt.QApplication([])
lbl = Qt.QLabel()
lbl.setFont(Qt.QFont('times',32))
lbl.setText('<img width=300 src="instr.jpg"><font color=#077 align=center><h1>RTFM !!!</h1></font>')
lbl.show()
 
app.exec_()
Миниатюры
Добавить в QLabel иконку и текст  
2
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
04.12.2021, 13:10
точнее не richtext а html тэги
0
6 / 5 / 1
Регистрация: 12.11.2019
Сообщений: 153
04.12.2021, 22:01  [ТС]
Я просто делаю кнопку поиска, пока она не активна(т.е. пока на неё не нажали) - отображается исключительно иконка(как вы говорите картинка, которая хранится в ресурсах проекта).
Название: 1.png
Просмотров: 235

Размер: 1.4 Кб
По нажатию, я хотел смещать картинку влево на 10px и вставлять в label слово "Поиск", чтобы получилось:
Название: 2.png
Просмотров: 233

Размер: 1.6 Кб
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
04.12.2021, 22:53
а зачем QLabel тогда?
кнопки и смотрите
Python
1
2
3
4
5
6
7
8
9
from PyQt5 import Qt
app = Qt.QApplication([])
icon = Qt.QIcon()
icon.addPixmap(Qt.QPixmap('rtfm1.png'))
btn = Qt.QPushButton()
btn.setIcon(icon)
btn.clicked.connect(lambda: btn.setText('click'))
btn.show()
app.exec_()
0
6 / 5 / 1
Регистрация: 12.11.2019
Сообщений: 153
05.12.2021, 00:49  [ТС]
Цитата Сообщение от vic5710 Посмотреть сообщение
а зачем QLabel тогда?
кнопки и смотрите
Python
1
2
3
4
5
6
7
8
9
from PyQt5 import Qt
app = Qt.QApplication([])
icon = Qt.QIcon()
icon.addPixmap(Qt.QPixmap('rtfm1.png'))
btn = Qt.QPushButton()
btn.setIcon(icon)
btn.clicked.connect(lambda: btn.setText('click'))
btn.show()
app.exec_()
Все из-за дизайна. Нужен четкий дизайн, из-за чего кнопки пришлось отложить.
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
05.12.2021, 22:06
Цитата Сообщение от Lapys Посмотреть сообщение
Нужен четкий дизайн, из-за чего кнопки пришлось отложить.
ну если что то нестандартное надо - учите qss
https://doc.qt.io/qt-5/stylesheet-examples.html
0
6 / 5 / 1
Регистрация: 12.11.2019
Сообщений: 153
05.12.2021, 22:50  [ТС]
Цитата Сообщение от vic5710 Посмотреть сообщение
ну если что то нестандартное надо - учите qss
https://doc.qt.io/qt-5/stylesheet-examples.html
Я видел, мне не подошло, на данный момент.
0
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
06.12.2021, 12:54
Цитата Сообщение от Lapys Посмотреть сообщение
я хотел смещать картинку влево на 10px и вставлять в label слово "Поиск"
А если в освобождённое простанство шириной 10px строка "Поиск" не влезет?
0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
06.12.2021, 13:03
Цитата Сообщение от kapbepucm Посмотреть сообщение
А если в освобождённое пространство шириной 10px строка "Поиск" не влезет?
kapbepucm,

Не по теме:

так сделать две картинки и менять по клику. ИМХО ТС не в теме вообще, сам не знает чего хочет

0
 Аватар для kapbepucm
1568 / 741 / 321
Регистрация: 02.05.2020
Сообщений: 1,660
06.12.2021, 14:15
Лучший ответ Сообщение было отмечено Lapys как решение

Решение

Цитата Сообщение от Lapys Посмотреть сообщение
По нажатию, я хотел смещать картинку влево на 10px и вставлять в label слово "Поиск"
позволил себе изменить ТЗ, увеличив смещение в 10 раз:
Python
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
import sys
from PyQt5.QtWidgets import QWidget, QHBoxLayout, QStyle, QApplication, QLabel
from PyQt5.QtCore    import Qt
 
TEXT_WIDTH = 100
 
class Button(QWidget):
  def __init__(self):
    super().__init__(None)
    image = QLabel()
    image.setPixmap(self.style().standardIcon(QStyle.SP_FileDialogContentsView).pixmap(self.height(), self.height()))
    self.text = QLabel("Поиск")
    self.text.setFixedWidth(TEXT_WIDTH)
    l = QHBoxLayout()
    l.setContentsMargins(0,0,0,0)
    l.addStretch()
    l.addWidget(image)
    l.addWidget(self.text)
    self.setLayout(l)
  def mousePressEvent(self, event):
    if event.button() == Qt.LeftButton:
      if self.text.isHidden():
        self.text.show()
      else:
        self.text.hide()
 
app = QApplication(sys.argv)
button = Button()
button.show()
sys.exit(app.exec_())

Не по теме:

Цитата Сообщение от vic5710 Посмотреть сообщение
ИМХО ТС не в теме вообще, сам не знает чего хочет
:D

2
6 / 5 / 1
Регистрация: 12.11.2019
Сообщений: 153
06.12.2021, 14:59  [ТС]
Цитата Сообщение от vic5710 Посмотреть сообщение
kapbepucm,

Не по теме:

так сделать две картинки и менять по клику. ИМХО ТС не в теме вообще, сам не знает чего хочет

Не по теме:

Я уточнил, имеется ли возможность добавить в QLabel текст. Мне ответили, все возможно. Но по итогу, вы посоветовали использовать Button. Я вроде бы сказал, что на данный момент из-за дизайна не могу использовать Button, поэтому пытаюсь сделать так, как указано в теме. Если я смогу в будущем обойти в Button обойти одну стенку(которая не позволяет мне использовать дизайн кнопки, как задуманно сейчас), то естественно и совершенно логично я перейду на Button. На данынй
момент у меня не хватает для этого знаний.

1
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
06.12.2021, 15:44
Lapys, ну так вы код свой покажите что ли

Не по теме:

нету тела - нету дела

0
6 / 5 / 1
Регистрация: 12.11.2019
Сообщений: 153
06.12.2021, 15:46  [ТС]
Да конечно, вот ссылка.

Не по теме:

То, что она в другом разделе, это из-за того, что я не сразу нашел данный раздел.

0
963 / 718 / 276
Регистрация: 10.12.2016
Сообщений: 1,764
06.12.2021, 15:56
ну можно так, но проще сделать две картинки одного размера, одну с текстом, другую нет
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Label(Qt.QLabel):
    def __init__(self):
        super().__init__()
        self.clicked = False
        self.pix1 = Qt.QPixmap(200,100)
        self.pix2 = Qt.QPixmap(200,100)
        self.pix1.fill(Qt.Qt.red)
        self.pix2.fill(Qt.Qt.green)
        self.setPixmap(self.pix1)
    
    def mousePressEvent(self,e):
        self.clicked = not self.clicked
        if self.clicked: self.setPixmap(self.pix2)
        else: self.setPixmap(self.pix1)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2021, 15:56
Помогаю со студенческими работами здесь

При клике на qbutton изменить текст qlabel
Доброго времени суток! Вопрос такой. Имеется кнопка pushButton1. Также имеется label labelT Необходимо сделать, чтобы при нажатии на...

Сделать так, чтобы по нажатию кнопки, текст из QLineEdit попадал в QLabel
Добрый день. Я начал изучать qt пару дней назад, т.к. было приказано на работе. До этого изучал немного delphi(видимо программирование...

Нужно, чтобы при выборе одного варианта из combobox менялся текст в qlabel
Нужно, чтобы при выборе одного варианта из combobox менялся текст в qlabel Код на python

Добавить иконку в listbox
Здравстуйте! Реально ли добавить иконку в listbox перед названием itema? что-то типа этого Me.ListBox1.Items.Add(Иконка &amp;...

Добавить иконку приложения
Как в Toolbar добавить значек перед названием приложения? в xml


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
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. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru