Ich bin neu in Qt. Jetzt versuche ich eine einfache App zum Zeichnen zu erstellen. Die Hauptidee - Ich habe ein zusätzliches Widget im Hauptfenster, das ein QLabel hat, das ein QImage zeigt (meine Leinwand zum Zeichnen von Pixeln). Das Problem ist, dass ich die Größe des imgDisplayer Labels nicht richtig einstellen kann. Es scheint immer kleiner zu sein als ich will und eine falsche Y-Koordinate hat. Zuerst habe ich versucht imgDisplayer->setGeometry(0,0, this->width(), this->height());
aber es funktionierte nicht korrekt als gut (das Label war sehr klein)QLabel kann nicht korrekt skaliert werden
mainwindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
area = new DrawingArea(this);
area->setGeometry(0,0,this->width(),this->height()/2);
area->show();
button = new QPushButton("Draw", this);
int bwidth = 100, bheight = 50;
button->setGeometry(200, 300, bwidth, bheight);
connect(button, SIGNAL(clicked(bool)), this, SLOT(getPoint()));
}
DrawingArea.cpp
DrawingArea::DrawingArea(QWidget *parent) : QWidget(parent)
{
setBackgroundRole(QPalette::Base);
setAutoFillBackground(true);
canvas = new QImage(300, 300, QImage::Format_RGB32);
QRgb val = qRgb(189,149,39);
canvas->fill(Qt::gray);
canvas->setPixel(4,4,val);
canvas->setPixel(5,4,val);
imgDisplayer = new QLabel(this);
imgDisplayer->setGeometry(0, 0, parent->width(), parent->height());
imgDisplayer->setPixmap(QPixmap::fromImage(*canvas));
imgDisplayer->show();
displayer = new QLabel(this);
}