Я пытаюсь добавить QgraphicsView(QColorDialog)
виджет на диалоге Palette
, но QGraphicsScene
соответствующий QColorDialog
виджета всегда пустой, и было бы большим подспорьем, если читатели могли бы помочь мне исправить мою ошибку.Виджеты внутри QGraphicsScene
Qt-4.8.4-Linux (CentOS)
The
GraphicsView
виджет, который будет включен в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()); }
PaletteDialog
КонструкторPaletteDialog::PaletteDialog(QWidget *parent) : QDialog(parent), ui(new Ui::PaletteDialog), { //PaletteDialog sets up the ClrWidget ui->setupUi(this); ... }
@Jerry_Coffin, добавьте _dialog виджет на сцене, но где вы установите положение виджета (в сцене), когда он был добавлен? Кроме того, в прошлом я обнаружил, что были проблемы с использованием QGraphicsProxyWidget с некоторыми виджетами. Попробуйте добавить QGraphicsRectItem в сцену и посмотреть, отображается ли это там, где вы ожидаете прокси-прокси. – TheDarkKnight