Die Widgets in einer QGraphicsScene

Ich versuche, fügen Sie ein QgraphicsView(QColorDialog) widget auf einen Palette dialog, aber die QGraphicsScene entsprechend der QColorDialog widget ist immer leer, und es wäre eine große Hilfe, wenn Leser könnte mir helfen, korrigieren meine Fehler.

Qt-4.8.4-Linux(CentOS)

  1. Den GraphicsView widget wird in die PalletteDialog

    ClrWidget::ClrWidget(QWidget *parent) :
      QGraphicsView(parent)
    {
      setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
      setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
      setFrameStyle(QFrame::NoFrame);
    
      setScene(new QGraphicsScene(this));
    
      _dialog = new QColorDialog();
      _dialog->setOption(QColorDialog::NoButtons, true);
      setMinimumSize(_dialog->size());
      setMaximumSize(_dialog->size());
    
      QGraphicsProxyWidget *proxyWidget = new QGraphicsProxyWidget();
      proxyWidget->setWidget(_dialog);
      //scene()->addItem(proxyWidget);
      //scene()->setSceneRect(proxyWidget->geometry());
    
      scene()->addWidget(_dialog);
      scene()->setSceneRect(_dialog->geometry());
    }
  2. PaletteDialog Konstruktor

    PaletteDialog::PaletteDialog(QWidget *parent)
      : QDialog(parent),
      ui(new Ui::PaletteDialog),
    {
      //PaletteDialog sets up the ClrWidget
      ui->setupUi(this);
      ...
    }
  • fügen Sie die _dialog widget, um die Szene, aber wo stellen Sie die position des widgets (in der Szene), wenn es Hinzugefügt wurde? Auch in der Vergangenheit habe ich gefunden, dass es Probleme mit QGraphicsProxyWidget mit einigen widgets. Versuchen Sie, ein QGraphicsRectItem, um die Szene und sehen Sie, wenn angezeigt wird, wo Sie erwarten, dass die proxy-widget.
InformationsquelleAutor rahul | 2013-05-14
Schreibe einen Kommentar