Sure. The Icons are loading from resoureces.py .

hibo.py:

# Import the PyQt and QGIS libraries
from PyQt4 import QtCore,  QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
# Initialize Qt resources from file resources.py
import resources
import sys
import os
# Import the code for the dialog
from Ui_hibo import Ui_hibo

class hibo:

    def __init__(self, iface):
        # Save reference to the QGIS interface
        self.iface = iface
        self.gui = Ui_hibo ()
    self.gui.setupUi()

    def connects(self):
        #self.dlg.ui.load_button.clicked.connect(self.loadImage)
        pass

    def initGui(self):
        # Create action that will start plugin configuration
self.action = QAction(QIcon("icon.png"), "HiBo", self.iface.mainWindow())
        # connect the action to the run method
        QObject.connect(self.action, SIGNAL("activated()"), self.run)

        # Add toolbar button and menu item
        self.iface.addToolBarIcon(self.action)
        self.iface.addPluginToMenu("&HiBo", self.action)

    def unload(self):
        # Remove the plugin menu item and icon
        self.iface.removePluginMenu("&HiBo",self.action)
        self.iface.removeToolBarIcon(self.action)

    # run method that performs all the real work
    def run(self):
        # show the dialog
        self.gui.show()
    #print os.getcwd()
        result = self.gui.exec_()
        # See if OK was pressed
        if result == 1:
            print "test1"

ui_hibo.py:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
import os

from PyQt4 import QtCore, QtGui
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
from qgis.gui import *


try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_hibo(QtGui.QDialog):

    def __init__(self):
        QtGui.QDialog.__init__(self)
    self.setupUi()

#self.connect(self.loadRaster, QtCore.SIGNAL('triggered()'), self.loadRasterImage) self.connect(self.canvasRaster, QtCore.SIGNAL('renderStarting()'), self.startRendering)

        self.setWindowTitle(self.tr("HiBo"))

    def setupUi(self):
    """setup for toolbar"""
    self.toolbarVector     = QtGui.QToolBar('vector', self)
    self.toolbarRaster     = QtGui.QToolBar('raster', self)

self.zoominVector = QtGui.QAction(QtGui.QIcon("zoomin.png"), 'zoominVector', self) self.zoomoutVector = QtGui.QAction(QtGui.QIcon("zoomout.png"), 'zoomoutVector', self) self.moveVector = QtGui.QAction(QtGui.QIcon("move.png"), 'moveVector', self) self.loadVector = QtGui.QAction(QtGui.QIcon("load.png"), 'loadVector', self) self.zoominRaster = QtGui.QAction(QtGui.QIcon("zoomin.png"), 'zoominRaster', self) self.zoomoutRaster = QtGui.QAction(QtGui.QIcon("zoomout.png"), 'zoomoutRaster', self) self.moveRaster = QtGui.QAction(QtGui.QIcon("move.png"), 'moveRaster', self) self.loadRaster = QtGui.QAction(QtGui.QIcon("load.png"), 'loadRaster', self) self.selectRaster = QtGui.QAction(QtGui.QIcon("select.png"), 'selectRaster', self)

    self.toolbarVector.addAction(self.loadVector)
    self.toolbarVector.addAction(self.zoominVector)
    self.toolbarVector.addAction(self.zoomoutVector)
    self.toolbarVector.addAction(self.moveVector)

    self.toolbarRaster.addAction(self.loadRaster)
    self.toolbarRaster.addAction(self.zoominRaster)
    self.toolbarRaster.addAction(self.zoomoutRaster)
    self.toolbarRaster.addAction(self.moveRaster)
    self.toolbarRaster.addAction(self.selectRaster)

    """setup for canvas"""
    self.canvasVector    = QgsMapCanvas()
    self.canvasVector.setCanvasColor(QtGui.QColor(255,255,255,255))
    self.canvasVector.enableAntiAliasing(True)
    self.canvasRaster    = QgsMapCanvas()
    self.canvasRaster.setCanvasColor(QtGui.QColor(255,255,255,255))
    self.canvasRaster.enableAntiAliasing(True)

#fileName = QFileDialog.getOpenFileName(None, "historical map", ".", "Image Files (*.png *.jpg *.bmp *.tiff)")
    fileName = "/home/felix/programming/HiBo-plugin/hibo/map.tif"
        fileInfo = QFileInfo(fileName)
        baseName = fileInfo.baseName()
        rlayer = QgsRasterLayer(fileName, baseName)
        if not rlayer.isValid():
            print "Layer failed to load!"
        QgsMapLayerRegistry.instance().addMapLayer(rlayer)
    self.canvasRaster.setExtent(rlayer.extent())
    self.canvasRaster.setLayerSet( [ QgsMapCanvasLayer(rlayer) ] )

    """layout"""
    vectorarea     = QtGui.QWidget()
    rasterarea     = QtGui.QWidget()

    layoutVector     = QtGui.QVBoxLayout()
    layoutRaster     = QtGui.QVBoxLayout()

    vectorarea.setLayout(layoutVector)
    rasterarea.setLayout(layoutRaster)

    layoutVector.addWidget(self.toolbarVector)
    layoutVector.addWidget(self.canvasVector)
    layoutRaster.addWidget(self.toolbarRaster)
    layoutRaster.addWidget(self.canvasRaster)

    layoutCentral = QtGui.QHBoxLayout(self)
    layoutCentral.addWidget(vectorarea)
    layoutCentral.addWidget(rasterarea)

    def retranslateUi(self):
        self.setWindowTitle(_translate("hibo", "hibo", None))

    #here it loads only in the legend of qgis main window
    """@QtCore.pyqtSlot()
    def loadRasterImage(self):
#fileName = QFileDialog.getOpenFileName(None, "historical map", ".", "Image Files (*.png *.jpg *.bmp *.tiff)")
    fileName = "/home/felix/programming/HiBo-plugin/hibo/map.tif"
        fileInfo = QFileInfo(fileName)
        baseName = fileInfo.baseName()
        rlayer = QgsRasterLayer(fileName, baseName)
        if not rlayer.isValid():
            print "Layer failed to load!"
        QgsMapLayerRegistry.instance().addMapLayer(rlayer)
    self.canvasRaster.setExtent(rlayer.extent())
    self.canvasRaster.setLayerSet( [ QgsMapCanvasLayer(rlayer) ] )
    #self.canvasRaster.refresh()"""

    @QtCore.pyqtSlot()
    def startRendering(self):
    print "start rendering"




Am 06.06.2014 07:40, schrieb Denis Rouzaud:
can you maybe show us the whole code?

Cheers,

Denis

On 05.06.2014 20:55, Felix Schmidt wrote:
The layer is loading in the legend and shown in the main window.
What do you mean, with the symbology. In front of the layer, in the legend, is a raster icon, if you mean this.

I copied the code from the slot to the building of the ui. so the layer is loading in the canvas by building the gui and not by clicking in the toolbar.

If I start qgis with this state of code, its starts and load load the layer, when I start the plugin the canvas is still white and when I clicked on the starting picture of qgis which is still there, the layer is shown in the canvas of the plugin.

It's confusing me.

Felix

Am 05.06.2014 20:20, schrieb Tim Sutton:
Hi



On Fri, Jun 6, 2014 at 12:15 AM, Felix Schmidt <felix.schm...@uni-weimar.de <mailto:felix.schm...@uni-weimar.de>> wrote:

    Same mistake with refresh() at the end.

    Am 05.06.2014 19:11, schrieb Rouzaud Denis:

        self.canvasRaster.refresh() at the end ?

        On 05 Jun 2014, at 18:27, Felix Schmidt
        <felix.schm...@uni-weimar.de
        <mailto:felix.schm...@uni-weimar.de>> wrote:




            Hello everyone,
            I try to load on signal, a rasterlayer to qgsmapcanvas.
            I try it like in
            the pycookbook:

            @QtCore.pyqtSlot()
                 def loadRasterImage(self):
                 print "slot works"
                     fileName = QFileDialog.getOpenFileName(None,
            "historical map",
            ".", "Image Files (*.png *.jpg *.bmp *.tiff)")
                     fileInfo = QFileInfo(fileName)
                     baseName = fileInfo.baseName()
                     rlayer = QgsRasterLayer(fileName, baseName)
                     if not rlayer.isValid():
                         print "Layer failed to load!"
             QgsMapLayerRegistry.instance().addMapLayer(rlayer)
                 print rlayer.extent().yMinimum()
             self.canvasRaster.setExtent(rlayer.extent())
                 self.canvasRaster.setLayerSet( [
            QgsMapCanvasLayer(rlayer) ] )

            self.canvasRaster is defined in the gui . I search for
            8h but I dont
            find a solutionen, because there are no errors.

            It load the rasterlayer to the main program of qgis, but
            not in my
            qgsmapcanvas. it is still white.


Is the layer loaded, showing in the legend but just not visible? Check the symbology for the layer is defined properly if this is the case.

Regards

Tim

            please help me.

            Felix



            _______________________________________________
            Qgis-developer mailing list
            Qgis-developer@lists.osgeo.org
            <mailto:Qgis-developer@lists.osgeo.org>
            http://lists.osgeo.org/mailman/listinfo/qgis-developer


    _______________________________________________
    Qgis-developer mailing list
    Qgis-developer@lists.osgeo.org
    <mailto:Qgis-developer@lists.osgeo.org>
    http://lists.osgeo.org/mailman/listinfo/qgis-developer




--
Tim Sutton - QGIS Project Steering Committee Member
==============================================
Please do not email me off-list with technical
support questions. Using the lists will gain
more exposure for your issues and the knowledge
surrounding your issue will be shared with all.

Irc: timlinux on #qgis at freenode.net <http://freenode.net>
==============================================



_______________________________________________
Qgis-developer mailing list
Qgis-developer@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to