Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
 Аватар для Dexel
46 / 13 / 3
Регистрация: 29.09.2013
Сообщений: 290

Вывод перечёркнутого символа в QLabel

30.10.2013, 19:02. Показов 3389. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Есть лабэль, в который нужно выводить некоторые символы перечёркнутые красной чертой под 45грд.
Текст - типом Plain в свойствах QLabel. Фонт - моноширный Monospace, т.е. фиксированная ширина символа.

Пусть даже и сделать перечёркнутому символу в CSS что-то типа "text-decoration: line-through" - он перечеркнёт текущим цветом color по горизонтали, не катит такое.
Спасибо.


PS: БДСМ рулит!
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.10.2013, 19:02
Ответы с готовыми решениями:

PyQt4 Несвоевременный вывод текста в QLabel
Добрый день! Имеется проблема. '''код''' QL = QtGui.QLabel () QL.setText (u'Поднесите карту к считывателю!') QL.show()

Вывод специальных символов в QLineEdit, QLabel и QPushButton
Добрый день. Стыдно признать, но столкнулся с тем, что не могу сам догадаться, как в Qt вывести следующие два символа: & ,...

Ввод символа из терминала, изменение регистра символа, вывод его в терминал (ассемблер)
Задача:Если вводимы элемент строчный, то перести его в заглавный(и наоборот). Пример:Ввели (a) - выдало (A)(и наоборот) У меня есть код...

6
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
30.10.2013, 20:51
1) может быть HTML позволяет что то подобное сделать, ведь QLabel можно скормить HTML текст
2) либо переопределить paintEvent и QPainter рисовать черту
0
 Аватар для Dexel
46 / 13 / 3
Регистрация: 29.09.2013
Сообщений: 290
31.10.2013, 03:36  [ТС]
Цитата Сообщение от Кудаив Посмотреть сообщение
1) может быть HTML позволяет что то подобное сделать, ведь QLabel можно скормить HTML текст
2) либо переопределить paintEvent и QPainter рисовать черту
QT понимает лишь примитивные свойства CSS. Ни margin, ни padding он не знает. И это к лучшему, а то поволочет за собой гимор совместимости движков WEBKIT, Safary, осла, т.п. По сему HTML здесь исключаем сходу.

А на счёт PaintEvent?? Что/как именно?
В смысле возможен вариант наложения виджетов слоями, чёт типа Z-INDEX в CSS2 ?
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
31.10.2013, 09:57
Цитата Сообщение от Dexel Посмотреть сообщение
QT понимает лишь примитивные свойства CSS. Ни margin, ни padding он не знает.
ну уж прям! у кутей продвинутый QSS может не настолько продвинутый как CSS но все же и маргины и падинги понимает прекрасно!
Цитата Сообщение от Dexel Посмотреть сообщение
В смысле возможен вариант наложения виджетов слоями, чёт типа Z-INDEX в CSS2 ?
нет, на виджете можно рисовать - для этого у любого класса наследника QWidget надо переопределить метод paintEvent и в нем рисовать с помощью QPainter линию
0
 Аватар для Dexel
46 / 13 / 3
Регистрация: 29.09.2013
Сообщений: 290
01.11.2013, 06:54  [ТС]
Цитата Сообщение от Кудаив Посмотреть сообщение
ну уж прям! у кутей продвинутый QSS может не настолько продвинутый как CSS но все же и маргины и падинги понимает прекрасно!

нет, на виджете можно рисовать - для этого у любого класса наследника QWidget надо переопределить метод paintEvent и в нем рисовать с помощью QPainter линию
Переопределил paintEvent, получается что линию накрывает шрифт, а мне нужно линию сверху.
.cpp
Кликните здесь для просмотра всего текста

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
Linethrough::Linethrough(QWidget *parent) : QWidget(parent), ui(new Ui::Linethrough)
{
    ui->setupUi(this);
}
void Linethrough::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap img(":/igrushka.jpg");
    painter.drawPixmap(50, 50, 100, 100, img);
}


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

C++ (Qt)
1
2
3
4
    QApplication a(argc, argv);
    Linethrough w;
    w.show();
    return a.exec();
Миниатюры
Вывод перечёркнутого символа в QLabel  
0
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
01.11.2013, 08:10
как вариант - рисовать текст самим Paintero' ом
mainwindow.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include <QLabel>
 
class Label: public QLabel
{
    Q_OBJECT
 
public:
    Label(QWidget* parent = 0);
 
    virtual void paintEvent(QPaintEvent *ev);
};
mainwindow.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "mainwindow.h"
#include <QPainter>
#include <QPen>
#include <QBrush>
 
Label::Label(QWidget *parent): QLabel(parent)
{
}
 
void Label::paintEvent(QPaintEvent *ev)
{
    {
        QPainter painter(this);
        painter.drawText(QPoint(rect().center().x() - 10, rect().center().y()), "Label");
 
        painter.setPen(QPen(QBrush(Qt::red), 5));
        painter.drawLine(rect().topLeft(), rect().bottomRight());
    }
    QLabel::paintEvent(ev);
}
main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include <QApplication>
#include "mainwindow.h"
 
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    Label lbl;
    lbl.resize(70, 70);
    lbl.show();
 
    return app.exec();
}
1
 Аватар для Dexel
46 / 13 / 3
Регистрация: 29.09.2013
Сообщений: 290
01.11.2013, 15:08  [ТС]
Цитата Сообщение от Кудаив Посмотреть сообщение
как вариант - рисовать текст самим Paintero' ом
mainwindow.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include <QLabel>
 
class Label: public QLabel
{
    Q_OBJECT
 
public:
    Label(QWidget* parent = 0);
 
    virtual void paintEvent(QPaintEvent *ev);
};
mainwindow.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "mainwindow.h"
#include <QPainter>
#include <QPen>
#include <QBrush>
 
Label::Label(QWidget *parent): QLabel(parent)
{
}
 
void Label::paintEvent(QPaintEvent *ev)
{
    {
        QPainter painter(this);
        painter.drawText(QPoint(rect().center().x() - 10, rect().center().y()), "Label");
 
        painter.setPen(QPen(QBrush(Qt::red), 5));
        painter.drawLine(rect().topLeft(), rect().bottomRight());
    }
    QLabel::paintEvent(ev);
}
main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
#include <QApplication>
#include "mainwindow.h"
 
int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    Label lbl;
    lbl.resize(70, 70);
    lbl.show();
 
    return app.exec();
}
Да, действительно работает. Система гидравлики холодильного агрегата по уровню сложности . Но ведь садо-мазо рулит! Куда ж без него.
На картинке - изменил параметры для показательности.
Большущее Вам человеческое спасибо!
Миниатюры
Вывод перечёркнутого символа в QLabel  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.11.2013, 15:08
Помогаю со студенческими работами здесь

Ввод символа с клавиатуры, вывод на экран символа и его кода в десятичной записи
Доброе время суток. Нужно написать программу на ассемблере, которая осуществляет ввод символа с клавиатуры, преобразовывает полученный...

Ввод символа, очистка экрана, вывод символа в центре экрана
Вывести приглашение к вводу символа, ввести символ, вывести введенный символ в центре очищенного экрана.

Ввод строки S и символа С. Результат: число повторений символа С и порядковые позиции вхождения этого символа в строку
Нужно составить программу, в которой пользователь вводит вручную строку S и символ C. Результатом программы должно быть число повторений...

Вывод символа
Ребят может кто-то помочь с такой задачкой? Res=X-Y+Z x – однобайтное, y,z – двухбайтные Вывод символа. Добавлено через 1 час...

Вывод символа в форматах c, d, o, x
Здравствуйте. Помогите решить две задачки: 1. Написать программу, которая после введения произвольного символа, выводит его на экран в...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru