Russian Qt Forum
Ноябрь 24, 2024, 02:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: HTML на QPushButton  (Прочитано 22762 раз)
k06a
Гость
« : Ноябрь 05, 2007, 14:26 »

Недавно начал использовать библиотеку Qt, столкнулся с такой проблемой . . .
Возможно ли на QPushButton разместить HTML коды и теги как на QLabel?
Собственно нужна кнопка с интегралом на ней.
QPusnButton *but = new QPushButton("∫"); - На кнопке написано "int;"
QPusnButton *but = new QPushButton("&∫"); - На кнопке написано "∫"

Или может не QPushButton использовать, а что-нибудь другое? (Иконки на кнопках не предлагать)

// Qt4.2.0, MVS2005


Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 05, 2007, 14:52 »

Экранировать, наверное, нужно. Т.к. знак & обеспечивает подчеркивание буквы на кнопке. Попробуйте или в теги взять, или чтото типа "\&int". К сожалению у меня сейчас нет возможности проверить.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
k06a
Гость
« Ответ #2 : Ноябрь 05, 2007, 14:59 »

QPushButton *but = new QPushButton("\∫"); - На кнопке написано "int;"

К сожалению((
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Ноябрь 05, 2007, 15:05 »

Млин, а если "<p>&int</p>" или "<p>\&int</p>"?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
k06a
Гость
« Ответ #4 : Ноябрь 05, 2007, 15:14 »

QPushButton *but = new QPushButton("<p>\&int</p>"); - На кнопке написано "<p>int</p>"
QPushButton *but = new QPushButton("<p>&int<p>"); - На кнопке написано "<p>int</p>"

QPushButton *but = new QPushButton("<p>\&int;</p>"); - На кнопке написано "<p>int;</p>"
QPushButton *but = new QPushButton("<p>&int;</p>"); - На кнопке написано "<p>int;</p>"
« Последнее редактирование: Ноябрь 05, 2007, 15:17 от k06a » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Ноябрь 05, 2007, 15:44 »

Походу тогда никак. Грустный Хотя по ассистенту для отображения текста используется QLabel. Можно попробовать вставить символ юникода, если там есть интеграл.
Еще как вариант расположить на кнопке QLabel. Улыбающийся
« Последнее редактирование: Ноябрь 05, 2007, 16:06 от panter_dsd » Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
k06a
Гость
« Ответ #6 : Ноябрь 05, 2007, 16:34 »

В QLabel-то всё работает. А вот как QLabel на кнопку посадить?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #7 : Ноябрь 05, 2007, 16:42 »

QLabel* label=new QLabel(button);
QVBoxLayout* layot=new QVBoxLayout;
layout->addWidget(label);
button->setLayout(layout);
Что-то типа того. Ассистента под рукой нет, так что не могу посмотреть есть ли у QPausButton setLayout.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
k06a
Гость
« Ответ #8 : Ноябрь 05, 2007, 17:11 »

panter_dsd, ОгРоМнОе СпАсИбО!!))

Код записал так:
Код:
QPushButton *but = new QPushButton;
QHBoxLayout *lay = new QHBoxLayout(but);
lay->addWidget(new QLabel("<p>&int;</p>"));
Теперь на кнопке нарисован интеграл!
Теперь постараюсь ток его по горизонтали выровнять по центру . . .

// дописал
lay->setAlignment(Qt::AlignCenter); - вот и всё

Ещё раз спасибо)
« Последнее редактирование: Ноябрь 05, 2007, 17:14 от k06a » Записан
k06a
Гость
« Ответ #9 : Ноябрь 05, 2007, 23:26 »

Из интересного решения проблемы вылезла новая проблема . . .

QPushButton *button = new QPushButton;
QHBoxLayout *layout = new QHBoxLayout(but);
QLabel *label = new QLabel("<p>&int;</p>");
layout->addWidget(label);
layout->setAlignment(Qt::AlignCenter);

Да, на кнопке нарисован интеграл (а на соседних ещё страшней значки)
Но для нажатия на кнопку необходимо попасть именно в QPushButton, а не в QLabel!!!
Это не так то просто . . .
У QLabel нет сигнала clicked() (и похожих) . . .
У QHBoxLayout - аналогично . . .

Возможно ли сделать QLabel видимым, но неосязаемым?
Чтобы кликать по нему, а попадать в QPushButton.

// Qt 4.2.0, MVS2005
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #10 : Ноябрь 06, 2007, 00:11 »

Нарисуй свой класс кнопки на базе QLabel
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #11 : Ноябрь 06, 2007, 00:24 »

Кстате, а разве через юникод кода не получаеться?

Код:
QPushButton *btn = new QPushButton(QString(0x222B));

Лично у меня такой код работает на ура (выводиться значок интеграла)
« Последнее редактирование: Ноябрь 06, 2007, 01:04 от pastor » Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
k06a
Гость
« Ответ #12 : Ноябрь 06, 2007, 00:54 »

pastor, точно, пасиб! Так намного проще)! А размер текста кнопки устанавливать можно как-нибудь? Щас нет возможности проверить . . .
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #13 : Ноябрь 06, 2007, 01:03 »

Пробуй менять размер фонта
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Tam-Tam
Гость
« Ответ #14 : Ноябрь 06, 2007, 08:43 »

Попробовал выводить текст на кнопку через лейблу. Столкнулся с проблемой. Пока текст размера по умолчанию черного цвета, все нормально. Но если изменить хотя бы один параметр из вышеуказанных, то кнопка начинает вести себя неадекватно - нажимается не на каждый щелчок, иногда реагирует с задержкой, в редких случая нажимается и остаелся нажатой. Кто-нибудь сталкивался с таким ? Знает что за глюк ?
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 23.