[Solved] Building a feature-reduced Qt - suddenly GraphicsView is gone
-
I am trying to build a feature-reduced Qt for an embedded device with GUI.
Now, I get tons of compile errors like this:
@error: invalid use of incomplete type 'struct QGraphicsWidget'@It looks like Qt no longer knows GraphicsView classes.
Removing GraphicsView was not my intention, and I don't see anything in my configuration that indicates GraphicsView should not be included.Any ideas what I am missing? I assume there is some implicit dependency I am missing.
Here is the ./configure call:
@./configure -qconfig tcl -embedded arm -xplatform qws/linux-arm-g++ -static -little-endian
-prefix /usr/local/qt-4.7.3-arm-static -qt-mouse-tslib
-qt-zlib -qt-libpng -qt-libjpeg -qt-libmng -silent
-no-largefile -no-qt3support -no-xmlpatterns -no-multimedia -no-audio-backend -no-phonon -no-phonon-backend
-no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug
-nomake demos -nomake examples -nomake tools -nomake translations -nomake docs@ -
The qconfig header has the following defines set:
@# define QT_NO_DBUS
define QT_NO_QUUID_STRING
define QT_NO_STL
define QT_NO_COLORDIALOG
define QT_NO_ERRORMESSAGE
define QT_NO_FILEDIALOG
define QT_NO_FONTDIALOG
define QT_NO_INPUTDIALOG
define QT_NO_PRINTDIALOG
define QT_NO_PRINTPREVIEWDIALOG
define QT_NO_PROGRESSDIALOG
define QT_NO_TABDIALOG
define QT_NO_WIZARD
define QT_NO_DOM
define QT_NO_FILESYSTEMMODEL
define QT_NO_PROCESS
define QT_NO_SETTINGS
define QT_NO_LIBRARY
define QT_NO_TEMPORARYFILE
define QT_NO_SOFTKEYMANAGER
define QT_NO_IMAGEFORMATPLUGIN
define QT_NO_IMAGEFORMAT_PPM
define QT_NO_IMAGEFORMAT_XBM
define QT_NO_IMAGEFORMAT_XPM
define QT_NO_IMAGE_HEURISTIC_MASK
define QT_NO_IMAGE_TEXT
define QT_NO_MOVIE
define QT_NO_TEXTCODEC
define QT_NO_CODECS
define QT_NO_TRANSLATION
define QT_NO_TRANSLATION_UTF8
define QT_NO_DATAWIDGETMAPPER
define QT_NO_DIRMODEL
define QT_NO_LISTVIEW
define QT_NO_COLUMNVIEW
define QT_NO_STANDARDITEMMODEL
define QT_NO_STRINGLISTMODEL
define QT_NO_TABLEVIEW
define QT_NO_TREEVIEW
define QT_NO_CLIPBOARD
define QT_NO_CONCURRENT
define QT_NO_CURSOR
define QT_NO_DRAGANDDROP
define QT_NO_EFFECTS
define QT_NO_SESSIONMANAGER
define QT_NO_SHAREDMEMORY
define QT_NO_SHORTCUT
define QT_NO_SOUND
define QT_NO_SYSTEMSEMAPHORE
define QT_NO_TABLETEVENT
define QT_NO_TEXTHTMLPARSER
define QT_NO_WHEELEVENT
define QT_NO_XMLSTREAMWRITER
define QT_NO_TEXTODFWRITER
define QT_NO_BEARERMANAGEMENT
define QT_NO_COP
define QT_NO_HOSTINFO
define QT_NO_HTTP
define QT_NO_NETWORKDISKCACHE
define QT_NO_NETWORKINTERFACE
define QT_NO_NETWORKPROXY
define QT_NO_SOCKS5
define QT_NO_UDPSOCKET
define QT_NO_URLINFO
define QT_NO_FTP
define QT_NO_DIRECTPAINTER
define QT_NO_PAINTONSCREEN
define QT_NO_PAINT_DEBUG
define QT_NO_PICTURE
define QT_NO_PRINTER
define QT_NO_CUPS
define QT_NO_RASTERCALLBACKS
define QT_NO_PHONON_ABSTRACTMEDIASTREAM
define QT_NO_PHONON_AUDIOCAPTURE
define QT_NO_PHONON_EFFECT
define QT_NO_PHONON_MEDIACONTROLLER
define QT_NO_PHONON_OBJECTDESCRIPTIONMODEL
define QT_NO_PHONON_SEEKSLIDER
define QT_NO_PHONON_VIDEO
define QT_NO_PHONON_VOLUMESLIDER
define QT_NO_QWS_ALPHA_CURSOR
define QT_NO_QWS_DECORATION_WINDOWS
define QT_NO_SXE
define QT_NO_SVG
define QT_NO_STYLE_STYLESHEET
define QT_NO_STYLE_WINDOWSXP
define QT_NO_GROUPBOX
define QT_NO_LCDNUMBER
define QT_NO_LINEEDIT
define QT_NO_SPINBOX
define QT_NO_MENU
define QT_NO_PROGRESSBAR
define QT_NO_RESIZEHANDLER
define QT_NO_RUBBERBAND
define QT_NO_SIGNALMAPPER
define QT_NO_SIZEGRIP
define QT_NO_SLIDER
define QT_NO_SPINWIDGET
define QT_NO_TABWIDGET
define QT_NO_STATUSBAR
define QT_NO_STATUSTIP
define QT_NO_TOOLBUTTON
define QT_NO_TOOLTIP
define QT_NO_VALIDATOR
define QT_NO_WIN_ACTIVEQT@
-
The QGraphicsWidget is a combination of QGraphicsObject and QWidget, so you might have removed something from either branch to cause that particular error. Are the other errors all QGraphicsWidget related or are they QGraphics*?
If it's the former then I would guess that one of the later defines in your config file (rubberband etc.) has broken the widget class.
-
QGraphicsWidget is not a combination of QGraphicsObject and QWidget, but a combination of QGraphicsObject and QGraphicsLayoutItem.
I wouldn't mind if QGraphicsProxyWidget didn't work, on the other hand, I can't display a graphics scene without a QGraphicsView, which is a QWidget. I need those anyway.
-
I guess I found it.
GraphicsView requires ScrollArea, ScrollArea requires ScrollBar, ScrollBar requires Slider.
Which I had unchecked.