我正在尝试创建一个没有垂直滚动页面的网站,但我需要其中一个DIV我必须垂直扩展到页面底部(最多),并且当它的内容不适合时,div应该创建一个垂直滚动条.
我已经在这个小提琴中找到了div 内部的css,在需要时创建了滚动条.我也想出了如何使容器div增长到恰好占据页面中的垂直空间.我只是不能让他们一起锻炼!
请记住,在jsfiddle你将无法查看整个网站的内容,从这个意义上说,你得到的第二小提琴并没有真正显示正在做什么,但它按照我的意图工作.
只是另一个注意事项:因为它们是不同的小提琴,第一个小提琴中的id#container div是第二个例子的id #dcontent div.
另外还有一件事:对于一种内容,这个div将垂直滚动,但对于其他类型的内容,我希望它水平滚动,因为它将有一个产品"滑块"在这个DIV内水平显示元素.
另请看这张照片,因为它可能更容易理解我想说的是:PICTURE
我试图寻找有关这些主题的其他问题,但似乎没有一个涵盖我试图解决的所有方面......:S
如果还有其他我可以提供的帮助你/我:)搞清楚,请告诉我!
谢谢!
编辑1:修正错别字
EDIT2:添加图片进行解释
我正在尝试读取文件夹中的所有文件,将它们存储在fileListvia中entryList(),然后,对于该文件夹中的每个文件,打开它并将其内容读入QString.我认为这应该很容易,但我无法弄清楚我做错了什么.我现在得到的错误是:
no matching function for call to 'QTextStream::QTextStream(QFile*, QIODevice::OpenModeFlag)'
据我所知,这涉及到错误的办法,我声明QTextStream,但事情是那个例子,我发现似乎DO这一点,所以,我为什么不能?
另外,我注意到如果我添加测试以检查文件打开是否成功,我会收到一条警告,说"访问被拒绝",即使我只是在阅读.虽然,我可以读取该文件夹的内容,甚至可以填充QListWidget这些文件没有问题.
事实上这些是*.JSON文件应该无关紧要,对吧?
我已经看过这个,这个和这个例子,但是无法弄清楚我做错了什么.任何帮助表示赞赏.
这是我的代码:
foreach(QString fileName, fileList){
QFile file(fileName);
file.open(QIODevice::ReadOnly);
QString s;
QTextStream s1(&file, QIODevice::ReadOnly);
s.append(s1.readAll());
qDebug() << "string content:" << s; // empty!!!
}
Run Code Online (Sandbox Code Playgroud)
更新
通过cmannett85建议的修改,我不再得到错误,但由于某种原因,字符串s最后仍然是空的.关于文件夹中的读/写权限,我现在已经注意到,如果我测试
if(!file.open(QIODevice::ReadWrite))
{
QMessageBox::information(0,"error",file.errorString());
}
Run Code Online (Sandbox Code Playgroud)
我得到两个警告 - 我怀疑是由- .和..- 当我运行循环时.在它产生32个警告之前,我在文件夹中有30个文件.无论如何,我试图读取的文件是*.JSON,根据Windows 7中的属性对话框,它们不能设置为只读或隐藏.我可以使用相同的程序在完全相同的文件夹中写入文件.
有一件事我想知道是否可能是这个原因:文件名包含.在扩展名之前,即ID.file.16.json …
我正在使用D3.js绘制一个可折叠的树形图,就像在示例中一样.它的工作主要是不错,但图可能当它进入其正常功能的大小发生显着变化(即,而不是我现在有几个节点,我就会有很多更多).
我想让SVG区域滚动,我已经尝试了我在网上找到的所有东西,但它没有成功.我工作的最好的就是使用d3.behaviour.drag,我在其中拖动整个图表.它远非最佳和毛刺,但它有点可用.
即使如此,我也试图将其清理一下,并且我意识到d3.behaviour.zoom它也可用于平移 SVG区域,根据API文档.
问题:任何人都可以解释如何使其适应我的代码吗?
我希望能够用图表平移 SVG区域,如果可能的话,它会对一些误用做出反应,即尝试将图表平移出视口,并且能够缩放到最大视口的尺寸......
到目前为止这是我的代码:
var realWidth = window.innerWidth;
var realHeight = window.innerHeight;
function load(){
callD3();
}
var m = [40, 240, 40, 240],
w = realWidth -m[0] -m[0],
h = realHeight -m[0] -m[2],
i = 0,
root;
var tree = d3.layout.tree()
.size([h, w]);
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });
var vis = d3.select("#box").append("svg:svg")
.attr("class","svg_container")
.attr("width", w)
.attr("height", h)
.style("overflow", "scroll")
.style("background-color","#EEEEEE") …Run Code Online (Sandbox Code Playgroud) 我正在使用d3.js使用此示例创建树.
这样可以完美地处理我拥有的数据并产生所需的结果,除了一个细节:我不希望节点之间有那些扭曲的连接线,我想要一条干净简单的线.有谁能告诉我如何制作它?
我一直在查看d3.js的API文档,但没有成功.根据我的理解,svg.line函数应该在给定一组两对坐标(x,y)的情况下产生一条直线.我认为我需要知道的是:给定这些数据,如何在链接数组中给出每对节点的(cx,cy)创建一条线:
var margin = {top: 40, right: 40, bottom: 40, left: 40};
var width = 960 - margin.left - margin.right;
var height = 500 - margin.top - margin.bottom;
var tree = d3.layout.tree()
.size([height, width]);
var diagonal = d3.svg.diagonal()
.projection(function(d) { return [d.y, d.x]; });
var svg = d3.select("body").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom)
.append("g")
.attr("transform", "translate(" + margin.left + "," + …Run Code Online (Sandbox Code Playgroud) 想象一下:有一个“配方”表和一个“配方步骤”表。这个想法是允许不同的配方步骤在不同的配方中重复使用。我遇到的问题与这样一个事实有关,即在配方上下文中,配方步骤显示的顺序很重要,即使它不遵循配方步骤表主键顺序,因为该顺序将是由用户设置。
我正在考虑做类似的事情:
配方步骤表: 身份证 | 步骤名称 | 步骤说明 ------------------------------- 1 | 第一步 | 说明1 2 | 步骤2 | 说明2 3 | 步骤3 | 描述3 ... 配方表: 配方编号 | 步 --------------- 1 | 1 1 | 2 1 | 3 ...
这样,步骤列中步骤显示的顺序就是我需要维护的顺序。
我对这种方法的担忧是:
有没有其他方法你会想到这样做?我还想过在配方步骤表中有一个上一步和一个下一步列,但我认为以这种方式使配方步骤可重复使用会更加困难。
我是一名工科学生,本学期我正在参加数据库和信息系统课程.我需要使用PHP/PGSQL生成使用数据库的网站/应用程序.我的问题是:
谢谢!
编辑:一些注意事项:
我有一个主窗口的应用程序,我在其中创建一个QGraphicsScene,如下所示:
DiagramWindow::DiagramWindow()
{
scene = new QGraphicsScene(0, 0, 600, 500);
Run Code Online (Sandbox Code Playgroud)
然后在同一个程序中,我用另一个(不同的)QGraphicsScene 调用另一个窗口.这两个场景都有各自的QGraphicsViews,我使用相同的自定义类在每个场景/窗口中绘制QGraphicsItem.
现在我正在尝试使用这个在两个场景/窗口之间实现拖放,我得到的效果我认为与此SO问题 类似/相同.基本上,当我将QGraphicsItem从第二个窗口/场景拖动到主窗口时,它不会触发场景中的事件,但它会在主窗口的工具栏/边框中触发.
我的事件处理功能是:
void DiagramWindow::dragEnterEvent(QDragEnterEvent *event)
{
qDebug() << "I'm on the main window!";
event->acceptProposedAction();
}
Run Code Online (Sandbox Code Playgroud)
和
void DiagramWindow::dropEvent(QDropEvent *event)
{
event->acceptProposedAction();
qDebug() << "got a drop!";
}
Run Code Online (Sandbox Code Playgroud)
根据那里的答案,我将不得不setAcceptDrops()在QGraphicsScene(这是不可能的),所以诀窍似乎是超载QGraphicsScene::dragMoveEvent().由于我的QGraphicsScene没有特定的类(仅适用于它的父级DiagramWindow),我不知道如何编写一个函数来定位场景的具体内容dragMoveEvent().
问题1我希望我可以这样做:
DiagramWindow->scene::dragMoveEvent()
{
...
}
Run Code Online (Sandbox Code Playgroud)
但当然这是不可能的.我是C++/Qt的新手,一般的工作流程/语法动力学仍然让我望而却步.如何在MainWindow中定位QGraphicsScene来编写事件处理函数?
问题2另外,我注意到通过重写这些事件处理函数,我(显然)失去了我在主窗口中的大部分功能 - 选择和移动QGraphicsItems不再有效.反正只有当事件发生在第二个窗口时,我才会触发这些事件?我已经看过了,QDrag->source()但我也没有得到它的工作原理 - 比如,如果事件来自第二个窗口,那么这样做,否则,继续做你以前做过的事情 …
我试图使用JQuery在HTML5中加载简单的svg文件.但我似乎没有在我的页面中得到这种效果.请帮我解决这个问题.
我已经浏览并找到了方法,但它对我不起作用.请参阅下面的代码:
<?xml version="1.0" ?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black"
stroke-width="2" fill="red" />
</svg>
Run Code Online (Sandbox Code Playgroud)
脚本:
$(document).ready(function(){
$('#svgfile').svg({loadURL: 'Sample.svg'});
}
Run Code Online (Sandbox Code Playgroud)
MyHtml.html:
<div id="svgfile" style="background:#9b0141;width:400px; height: 400px;">
Run Code Online (Sandbox Code Playgroud) 所以,我有我正在做的这个学校项目,我需要一个可视化工具,用于我正在开发的软件完成的一些处理的结果.
由于我使用Qt的软件,我想用的D3.js在QtWebView widget的顶部.我目前正在使用Qt"Fancy browser"示例测试D3.js的一个简单示例.我知道当我在index.html文件中添加Javascript时,它可以在Fancy浏览器上运行.出于某种原因,D3脚本中使用的Javascript没有.
问题是,我对Qt和D3.js都很新,因此我不知道我是否遗漏了有关设置的内容以使其成为可能,或者它是否只是错误的代码.
我对这种情况有些怀疑: - QtWebView甚至支持HTML文件中的SVG元素吗? - 我注意到必须将jQuery.js添加到Fancy浏览器项目的资源中才能由应用程序进行评估.据我所知,这是为了使用jQuery实现页面内容的操作.可能是我必须做与D3类似的事情吗?如果是这样,怎么样? - 很可能没有任何显示,因为我给D3的指令实际上并没有在HTML文件中产生任何东西,我该如何解决?
我试着在网上搜索我想要实现的信息,但是没有那么多来源.我在网上发现了一些关于QtWebkit和Javascript的东西,但不幸的是它并没有帮助我那么多.
最后一点说明:在我正在研究的机器中,我无法访问网络,因为它无法访问所有内容.此外,我甚至无法安装Webkit浏览器(如Chrome或其他东西)进行DOM检查,因此它不会变得更简单.:S
非常感谢任何帮助,谢谢大家!