Russian Qt Forum

Qt => Общие вопросы => Тема начата: Temi4 от Апрель 27, 2010, 21:31



Название: Переопределенная pushButton не отобраджается с помощью show
Отправлено: 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 все коректно показывается


Название: Re: Переопределенная pushButton не отобраджается с помощью show
Отправлено: lit-uriy от Апрель 27, 2010, 21:40
>>SmsBtn::SmsBtn(QWidget *parent) : QAbstractButton()
инициализируй конструктор базового класса


Название: Re: Переопределенная pushButton не отобраджается с помощью show
Отправлено: Temi4 от Апрель 27, 2010, 21:43
SmsBtn::SmsBtn(QWidget *parent) : QAbstractButton()
{   
   resize(50,50);
}
а разве с помощью вот этого он не инициализируется?
или вот этого SmsBtn *PhoneBookBtn = new SmsBtn(this);?


Название: Re: Переопределенная pushButton не отобраджается с помощью show
Отправлено: ufna от Апрель 27, 2010, 21:57
не-не, родитель базовому классу не назначается

надо:

Код
C++ (Qt)
SmsBtn::SmsBtn(QWidget *parent) : QAbstractButton(parent)
{
resize(50,50);
}