Hi<br><br>I just made a simple demo below, I hope it could help a little bit.<br><br>1. I don&#39;t set limits on root layer. so you can put every thing in order, like title the row 0, (I don&#39;t always put labels and axis in the different layer, because I think they use the same coordinate with data ),but I set limits to each layer above root layer, reverse y-axis, like usual.<br>

2. you can use location function to see the system capture the right coordinates, in these two layer. <br>3. I only use gridLayout()$setRowStretchFactor()<br>4. I guess the text in your code is not shown because the place row=0,column=0, has a blank layer. and there is no extra space for showing the text in that layer, you can set limits to that layer to make the text shown.<br>

<br>Regards<br><br>Tengfei<br><br>###<br>library(qtpaint)<br>s &lt;- qscene()<br>mypainter1 &lt;- function(layer,painter){<br>  qdrawCircle(painter,rnorm(100,50,20),rnorm(100,50,20),r=5,fill=&#39;black&#39;)  <br>}<br>mypainter2 &lt;- function(layer,painter){<br>

  qdrawCircle(painter,rnorm(100,750,100),rnorm(100,750,100),r=5,fill=&#39;red&#39;)<br>}<br>mouseLocator &lt;- function(layer,event){<br>  print(as.numeric(event$pos()))<br>}<br>rootLayer &lt;- qlayer(s)<br>l1 &lt;- qlayer(rootLayer,mypainter1,limits=qrect(0,0,100,100),mouseDoubleClickFun=mouseLocator)<br>

l2 &lt;- qlayer(rootLayer,mypainter2,row=1,limits=qrect(500,500,1000,1000),mouseDoubleClickFun=mouseLocator)<br>rootLayer$gridLayout()$setRowStretchFactor(0,1)<br>rootLayer$gridLayout()$setRowStretchFactor(1,5)<br>qplotView(s)$show()<br>

<br>###<br><br><div class="gmail_quote">On Wed, Sep 1, 2010 at 12:11 AM, Yihui Xie <span dir="ltr">&lt;<a href="mailto:xie@yihui.name">xie@yihui.name</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Hi all,<br>
<br>
I&#39;m wondering if there are any approaches to completely show the<br>
graphical elements on the boundaries under a layout containing several<br>
layers. This is like the functionality par(xpd=NA) in base R graphics.<br>
See the example below that the texts for the origin (0,0) on the axes<br>
are partially hidden.<br>
<br>
My another problem is, I don&#39;t really understand the layout approach,<br>
although I&#39;ve been reading the qtpaint vignette and digging the Nokia<br>
Qt documentations. Specifically, how should we define the coordinate<br>
system in each layer in a layout? (I experimented with mouse clicking<br>
to get locations but got even more confused) With a single layer, I<br>
can plot the data using its range to define the limits and everything<br>
is fine. Besides, does anyone have a working demo to draw a simplest<br>
plot with the layout approach? I struggled with<br>
set(Column|Row)(Maximum|Minimum|Preferred)(Width|Height) and<br>
set(Column|Row)StretchFactor, but they do not behave as we expect them<br>
to, e.g. the stretch factor being 0 will not restrict the height/width<br>
of a layer to be a fixed value -- they change as we resize the window.<br>
<br>
Below is the R code:<br>
<br>
# I need hints on how to split the root layer into several regions<br>
# and what are their coordinate systems<br>
library(qtpaint)<br>
scene = qscene()<br>
figLayer = qlayer(scene,limits=qrect(0,0,675,550))<br>
titlePainter = function(item, painter) {<br>
    qdrawText(painter, &#39;The Useless Title&#39;, 300, 0,&#39;center&#39;,&#39;bottom&#39;)<br>
    tmp=as.matrix(titleLayer$boundingRect())<br>
    qdrawRect(painter, tmp[1,1],tmp[1,2],tmp[2,1],tmp[2,2])<br>
}<br>
yAxisPainter = function(item, painter) {<br>
    qdrawText(painter, as.character(pretty(1:400)), 37.5, pretty(1:400))<br>
}<br>
plotPainter = function(item, painter) {<br>
    qdrawPoint(painter, runif(1000, 0, 600), runif(1000, 0, 400))<br>
    qdrawRect(painter, 1, 1, 600-1, 400-1)<br>
}<br>
xAxisPainter = function(item, painter) {<br>
    qdrawText(painter, as.character(pretty(1:600)), pretty(1:600), 37.5)<br>
}<br>
mouseLocator = function(item, event){<br>
    print(as.numeric(event$pos()))<br>
}<br>
titleLayer = qlayer(figLayer, titlePainter,<br>
mousePressFun=mouseLocator, row=2,col=1)<br>
yaxis = qlayer(figLayer, yAxisPainter,mousePressFun=mouseLocator,row = 1,col=0)<br>
plotLayer = qlayer(figLayer, plotPainter,<br>
mousePressFun=mouseLocator,row = 1, col = 1)<br>
xaxis = qlayer(figLayer, xAxisPainter, mousePressFun=mouseLocator,row<br>
= 0, col = 1)<br>
<br>
layout = figLayer$gridLayout()<br>
<br>
layout$setRowMaximumHeight(0, 75)<br>
layout$setRowMinimumHeight(0, 60)<br>
# main plot region: 400x600<br>
layout$setRowPreferredHeight(1, 400)<br>
layout$setRowMaximumHeight(2, 75)<br>
layout$setRowMinimumHeight(2, 60)<br>
<br>
layout$setColumnMaximumWidth(0, 75)<br>
layout$setColumnMinimumWidth(0, 60)<br>
layout$setColumnPreferredWidth(1, 600)<br>
layout$setRowStretchFactor(0, 0)<br>
layout$setRowStretchFactor(1, 1)<br>
layout$setRowStretchFactor(2, 0)<br>
layout$setColumnStretchFactor(0, 0)<br>
layout$setColumnStretchFactor(1, 1)<br>
<br>
print(view&lt;-qplotView(scene = scene))<br>
<br>
<br>
#################################################<br>
<br>
&gt; sessionInfo()<br>
R version 2.11.1 (2010-05-31)<br>
x86_64-pc-linux-gnu<br>
<br>
locale:<br>
[1] en_US.utf8<br>
<br>
attached base packages:<br>
[1] stats     graphics  grDevices utils     datasets  methods   base<br>
<br>
other attached packages:<br>
[1] qtpaint_0.7.9<br>
<br>
loaded via a namespace (and not attached):<br>
[1] qtbase_0.8-4 tools_2.11.1<br>
<br>
<br>
Thanks a lot!<br>
<br>
Regards,<br>
Yihui<br>
--<br>
<font color="#888888">Yihui Xie &lt;<a href="mailto:xieyihui@gmail.com">xieyihui@gmail.com</a>&gt;<br>
Phone: 515-294-6609 Web: <a href="http://yihui.name" target="_blank">http://yihui.name</a><br>
Department of Statistics, Iowa State University<br>
3211 Snedecor Hall, Ames, IA<br>
_______________________________________________<br>
Qtinterfaces-devel mailing list<br>
<a href="mailto:Qtinterfaces-devel@lists.r-forge.r-project.org">Qtinterfaces-devel@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/qtinterfaces-devel" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/qtinterfaces-devel</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>Tengfei Yin<br>MCDB PhD student <br>1620 Howe Hall, 2274,<br>Iowa State University<br>Ames, IA,50011-2274<br>Homepage: <a href="http://www.tengfei.name" target="_blank">www.tengfei.name</a><br>

<div><br></div><br>