Hi, The fitInView works nice for me although i needed to perform some other transformation but I was able to utilize this function to achieve advance zooming so I guess i will stick to it, at least for now. I'm happy i didnt have to resort to QGLWidget.
Thank you very much :) cheers, D. > Hi, Dawid. > > Dawid Sip wrote: >> GraphicsView -pos(150,200) I can transform this down to the item and >> get somethink like pos(1250x1000). So I somehow need to adjust the >> projection. I think this is an issue of the viewport. I think I could >> achieve this by changing the viewport to QGLWidget and with help of >> some wrapper lib. like JOGL adjust the viewport/frustum, but I'd >> rather not use OpenGL in my application. So is this the only way or >> can I still do this with the default QWidget as viewport? >> >> Sow the question is: "How to show large pixmpa in a small viewport >> without loosing pixmap data" >> >> Could somebody please point me in the right direction? >> > > The graphics view has the possibility of setting any transform/matrix > on it to alter how and which part of the scene is displayed. For your > particular case there is also a convenience method which sets the > correct scale on the view so that a specific item fits perfectly > inside it. > > > http://doc.trolltech.com/qtjambi-4.4.0_01/doc/html/com/trolltech/qt/gui/QGraphicsView.html#fitInView(com.trolltech.qt.gui.QGraphicsItemInterface) > > > > I have attached a modification to the previous example of how you can > use this method to achieve what you need. Please make sure you set the > scrollbar policy of the view to no scrollbars in both vertical and > horizontal direction, though, otherwise you will get an infinite > stream of resize events as the scrollbars automatically switch on and > off. > > Hope this helps. > > -- Eskil > > ------------------------------------------------------------------------ > > import com.trolltech.qt.core.Qt; > import com.trolltech.qt.core.Qt.Orientation; > import com.trolltech.qt.gui.*; > > class MyDockWidget extends QDockWidget { > > private static QPixmap pixmap = new > QPixmap("classpath:com/trolltech/images/qt-logo.png"); > > int i=0; > public MyDockWidget() { > QGraphicsScene scene = new QGraphicsScene(); > final QGraphicsPixmapItem item = scene.addPixmap(pixmap); > > QGraphicsView view = new QGraphicsView() { > > @Override > protected void resizeEvent(QResizeEvent e) { > fitInView(item); > super.resizeEvent(e); > } > > }; > > > view.setVerticalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff); > > view.setHorizontalScrollBarPolicy(Qt.ScrollBarPolicy.ScrollBarAlwaysOff); > view.setScene(scene); > > setWidget(view); > } > > } > > public class guiSplit extends QMainWindow{ > > Ui_guiSplitClass ui = new Ui_guiSplitClass(); > QSplitter spliterV = new QSplitter(Orientation.Vertical); > QSplitter spliterH = new QSplitter(Orientation.Horizontal); > private int imageInCentralWidget = 0; > > public static void main(String[] args) { > QApplication.initialize(args); > guiSplit testguiSplit = new guiSplit(); > testguiSplit.show(); > QApplication.exec(); > } > > public guiSplit(){ > ui.setupUi(this); > > spliterV.addWidget(spliterH); > > QWidget w = new QWidget(); > QHBoxLayout layout = new QHBoxLayout(w); > layout.addWidget(spliterV); > > setCentralWidget(w); > } > > public guiSplit(QWidget parent){ > super(parent); > ui.setupUi(this); > } > > QDockWidget dockWid; > public void on_actionAddDockWid_triggered() { > if(imageInCentralWidget==3) return; > > System.err.println("\n\n\n"); > dockWid = new MyDockWidget(); > dockWid.setObjectName("dockWid"+(++imageInCentralWidget)); > > dockWid.setFeatures(com.trolltech.qt.gui.QDockWidget.DockWidgetFeature.createQFlags(com.trolltech.qt.gui.QDockWidget.DockWidgetFeature.NoDockWidgetFeatures)); > QApplication.processEvents(); > > switch(imageInCentralWidget){ > case 1: > spliterH.addWidget(dockWid); > break; > case 2: > spliterH.addWidget(dockWid); > break; > case 3: > spliterV.addWidget(dockWid); > break; > } > } > } > _______________________________________________ Qt-jambi-interest mailing list [email protected] http://lists.trolltech.com/mailman/listinfo/qt-jambi-interest
