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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Переопределенная pushButton не отобраджается с помощью show  (Прочитано 2566 раз)
Temi4
Гость
« : Апрель 27, 2010, 21:31 »

Привет подскажите в чем проблема?
Код:
#include <QtGui>
#include <QPixmap>
#include "smsBtn.h"
/// Конструктор
SmsBtn::SmsBtn(QWidget *parent) : QAbstractButton()
{
resize(50,50);
}
/// Перерисовываем окно
void SmsBtn::paintEvent(QPaintEvent *e)
{
QPainter painter;
painter.begin(this);
painter.drawPixmap(rect(),img);
painter.end();
}
/// Событие нажатия на кнопку
void SmsBtn::mousePressEvent(QMouseEvent *)
{
img = image_tap;
repaint();
clicked();
}
/// Событие отпускания кнопки
void SmsBtn::mouseReleaseEvent(QMouseEvent *)
{
img =image;
repaint();
}
/// Устанавливаем картинку
void SmsBtn::SetImage(QString fileName,QString fileName2)
{
img = image = QPixmap(fileName);
image_tap = QPixmap(fileName2);
}

Это кнопка которую я создаю.
Код:
SmsBtn *PhoneBookBtn = new SmsBtn(this);
PhoneBookBtn->setGeometry(0,0,100,15);
PhoneBookBtn->SetImage("book.png","book_tup.png");
PhoneBookBtn->show();
дальше делаю такое действие и кнопка не отображается на виджете. В чем мой косяк??
Хотя Обычная пушь баттон отлично показывается....

Если эту же кнопку засунуть в какой нить Qlayout все коректно показывается
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Апрель 27, 2010, 21:40 »

>>SmsBtn::SmsBtn(QWidget *parent) : QAbstractButton()
инициализируй конструктор базового класса
Записан

Юра.
Temi4
Гость
« Ответ #2 : Апрель 27, 2010, 21:43 »

SmsBtn::SmsBtn(QWidget *parent) : QAbstractButton()
{   
   resize(50,50);
}
а разве с помощью вот этого он не инициализируется?
или вот этого SmsBtn *PhoneBookBtn = new SmsBtn(this);?
Записан
ufna
Гость
« Ответ #3 : Апрель 27, 2010, 21:57 »

не-не, родитель базовому классу не назначается

надо:

Код
C++ (Qt)
SmsBtn::SmsBtn(QWidget *parent) : QAbstractButton(parent)
{
resize(50,50);
}
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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