ペイントイベントの使用方法に関する多くの例を見てきましたが、それを機能させることができません。
.ui ファイルに「image」という名前のラベルがあり、その中にペイントしようとしています。みじめに失敗します。私が見たほとんどの例では、
QLabel::paintEvent(e)
しかし、私はこれを使用できません。
error: cannot call member function 'virtual void QLabel::paintEvent(QPaintEvent*)' without object
そして、私が使用するとき
ui->image->paintEvent(e);
私は得る
/usr/include/qt4/QtGui/qlabel.h:141: error: 'virtual void QLabel::paintEvent(QPaintEvent*)' is protected
私は何かが欠けているようです...それは私がこれを実装しようとする私のコードの一部です:
void crop_my_image::paintEvent(QPaintEvent *e)
{
ui->image->paintEvent(e);
QPainter painter(ui->image);
painter.setPen(QPen(QBrush(QColor(0,0,0,180)),1,Qt::DashLine));
painter.setBrush(QBrush(QColor(255,255,255,120)));
painter.drawRect(selectionRect);
}
crop_my_image
QDialogタイプです!
PS:ui->image->paintEvent(e);
使用する代わりQDialog::paintEvent(e);
に、ダイアログをうまく描画できる場合は、正しい道にいるはずです!
ご回答ありがとうございます。