我试图在包含几个QT小部件的表单中使用QTextEdit小部件.表单本身位于QScrollArea内,该窗口是窗口的中心窗口小部件.我的意图是,任何必要的滚动都将在主QScrollArea中进行(而不是在任何小部件内部),并且内部的任何小部件将自动调整其高度以保存其内容.
我试图用QTextEdit实现高度的自动调整,但遇到了一个奇怪的问题.我创建了一个QTextEdit的子类,并重新实现了sizeHint(),如下所示:
QSize OperationEditor::sizeHint() const {
QSize sizehint = QTextBrowser::sizeHint();
sizehint.setHeight(this->fitted_height);
return sizehint;
}
Run Code Online (Sandbox Code Playgroud)
this-> fitted_height通过连接到QTextEdit的"contentsChanged()"信号的插槽保持最新:
void OperationEditor::fitHeightToDocument() {
this->document()->setTextWidth(this->viewport()->width());
QSize document_size(this->document()->size().toSize());
this->fitted_height = document_size.height();
this->updateGeometry();
}
Run Code Online (Sandbox Code Playgroud)
QTextEdit子类的大小策略是:
this->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred);
Run Code Online (Sandbox Code Playgroud)
这是我的问题:
随着QTextEdit逐渐调整大小以填充窗口,无论sizeHint()返回什么高度,它都会停止变大并开始在QTextEdit中滚动.如果我最初让sizeHint()返回一些大的常数,那么QTextEdit非常大,并且很好地包含在外部QScrollArea中,正如人们所期望的那样.但是,如果sizeHint逐渐调整QTextEdit的大小而不是仅仅让它开始变大,那么当它填充当前窗口并开始滚动而不是增长时,它会突然出现.
我已经跟踪过这个问题,无论我的sizeHint()返回什么,它都不会将QTextEdit的大小调整为大于从QAbstractScrollArea继承的maximumViewportSize()返回的值.请注意,这与viewport() - > maximumSize()的数量不同.我无法弄清楚如何设置该值.
查看QT的源代码,maximumViewportSize()返回"视口的大小,好像滚动条没有有效的滚动范围".此值基本上计算为窗口小部件的当前大小减去(2*frameWidth +边距)加上任何滚动条宽度/高度.这对我来说没有多大意义,而且我不清楚为什么这个数字会以某种方式用于取代子类的sizeHint()实现.而且,单个"frameWidth"整数用于计算宽度和高度似乎很奇怪.
任何人都可以对此有所了解吗?我怀疑我对QT布局引擎的不了解是这里的责任.
编辑:在最初发布之后,我有想法重新实现maximumViewportSize()以返回与sizeHint()相同的东西.不幸的是,这不起作用,因为我仍然有同样的问题.
我想在我的wiki中创建一个层次结构,如下所示:
General
FooPages
Foo1
Foo2
Foo3
ODP
Bar
Baz
Run Code Online (Sandbox Code Playgroud)
我想创建这些页面,并使用<<toc>>目录宏来组织它们.
我怎样才能做到这一点?我是否需要在自己的计算机上克隆和编辑维基,或者我可以通过网络界面专门执行此操作?
我正在创建一个要在网页上显示的表,该表是从MySQL数据库中的数据填充的.我正在尝试做一些让我很难的事情.
首先,我试图通过JavaScript调用HTML中的单独文件中存在的PHP代码.我认为我的工作正常,但我不是百分百肯定(因为表格不会显示).我认为它正常工作,因为该表的一些代码(在PHP文件中)显示在FireBug中.
其次,我试图使它成为行替代颜色,以便于查看.到目前为止我的PHP代码如下.该表在任何浏览器中都不显示.
$query = "SELECT * FROM employees";
$result = mysql_query($query);
$num = mysql_num_rows($result);
echo '<table>';
for ($i = 0; $i < $num; $i++){
$row = mysql_fetch_array($result);
$id = $row['id'];
$l_name = $row['l_name'];
$f_name = $row['f_name'];
$ssn = $row['ssn'];
$class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row";
echo "<tr>";
echo "<td class=" . $class . ">$wrap_id</td>";
echo "<td class=" . $class . ">$wrap_l_name</td>";
echo "<td class=" . $class . ">$wrap_f_name</td>";
echo "<td class=" . …Run Code Online (Sandbox Code Playgroud) 我有一个失败的简单jQuery图像开关.
$('.heart_img').click(function()
{
var heart_type = $(this).attr('src');
//alert( heart_type );
if ( heart_type == 'images/unheart.png')
{
//alert('uheart');
$(this).attr('src','images/heart.png');
}
else if ( heart_type == 'images/heart.png');
{
$(this).attr('src','images/unheart.png');
}
});
Run Code Online (Sandbox Code Playgroud)
未注释时警报会正确触发,并且图像位于正确的位置,因此我不确定问题是什么.
如何使用另一个相关表中的xml标记值更新xml标记的值?
这样的事情:
UPDATE v2
SET
[xml].modify ('replace value of (//TAG1/text())[1]
with "CAST(v1.[xml].query(''//TAG2'') AS NVARCHAR(MAX))"')
FROM
table2 v2,
table1 v1
WHERE
v2.id = v1.id
Run Code Online (Sandbox Code Playgroud) 在Windows中使用带有重叠IO的文件写入是否有任何优势,而不仅仅是在我创建的单独线程中编写文件?
[编辑 - 请注意我在没有系统缓存的情况下进行文件写入,即我在CreateFile中使用FILE_FLAG_NO_BUFFERING标志)
很久以前,当我发现W3C Validator时,我确保我制作的每个HTML文档都是有效的HTML.
但是,我认为有时候没有必要浪费时间使其有效.当然,对于实际的互联网页面可能很重要,但是当HTML页面在最常用的浏览器中正确呈现时,在Intranet上制作页面,甚至在与其他程序一起使用的前端很少(不一定计算IE 6和7).
我认为我主要讨论的是对代码的一些改进,例如将页面的每个显示元素包装起来<p>或<div>标记.
我想学习C,UNIX和LINUX,以及有关嵌入式系统的更多信息.对他们非常感兴趣.有没有可以指导我的在线课程或网站.并建议阅读书籍以便学习它们.
谢谢你的时间.
雅请让你的答案和评论进来,它们对我来说非常宝贵.. !!
假设我在php中有一个简单页面的网站
page1.php
page2.php
Run Code Online (Sandbox Code Playgroud)
现在有一个页面,我想要一些详细的功能,我想使用python,它看起来像
page3.py
Run Code Online (Sandbox Code Playgroud)
而在其他页面我想用java之类的
page4.jsp
Run Code Online (Sandbox Code Playgroud)
如果我在webserver上安装了python,java.
可能吗?
我有一个像这样的字符串:
some_string ="SMS短信的简单演示." + Convert.ToChar(26));
什么是我最简单的摆脱char 26的方式?
请记住,有时some_string有char 26,有时它没有,它也可能在不同的位置,所以我需要知道什么是最通用和最简单的摆脱char 26的方法?