我正在使用带有QItemDelegate子类的QTableView来控制tableview的单元格的外观.
每个单元显示外部连接设备的名称和状态,并且可以同时连接多达100个设备.
每个设备的名称和类型基本上是静态的,很少更新(可能每小时一次),但每个单元需要显示设备输入的实时值,我目前每50毫秒轮询一次.此值显示为由TableView提供给Delegate :: paint()方法的painter绘制的基本条形图.
每秒更新我的模型20次的问题是每次重绘整个表,这是非常低效的.将绘制方法限制为仅绘制条形图显示,大部分CPU时间专用于在每个单元格而不是图形上绘制名称,状态和关联图像.
我需要找到一种方法来定期更新每个单元格的图形而不重新绘制单元格,但我无法弄清楚如何做到这一点.
实现这一目标的最有效方法是什么?
编辑:图片附加到帮助.
Image代表QTableView中的10个传感器.数字,名称和状态几乎是静态的,几乎从不更新."传感器值"文本旁边的条形图每50ms更新一次.我只想绘制这个条,而不是文本,状态和单元格背景.状态指示灯和背景是复杂的图像,因此比简单地绘制和填充矩形需要更多的CPU时间.

您是否能够在具有HAVING子句的查询中使用COUNT,以便COUNT返回行数?当我尝试时,我得到ID显示在表格中的次数.这是查询:
SELECT col_appid, min(col_payment_issued_date) as PayDate
FROM tbl_ui_paymentstubs
WHERE isnull(col_payment_amount,0) > 0
GROUP BY col_appid
HAVING min(col_payment_issued_date) >= '09/01/2010' and min(col_payment_issued_date) <= '09/30/2010'
Run Code Online (Sandbox Code Playgroud)
我回来了6行,这很好,但我想回到6号.
我发现我可以这样做,但想知道是否有另一种更优雅的方式:
WITH Claims_CTE(AppID, PayDate) as
(
SELECT col_appid, min(col_payment_issued_date) as PayDate
FROM tbl_ui_paymentstubs
WHERE isnull(col_payment_amount,0) > 0
GROUP BY col_appid
HAVING min(col_payment_issued_date) >= '09/01/2010' and min(col_payment_issued_date) <= '09/30/2010'
)
SELECT count(AppID) as Amount from Claims_CTE
Run Code Online (Sandbox Code Playgroud)
`
我正在尝试将defaultValue设置为ListPreference项.
以下是我的preference.xml文件示例:
<ListPreference android:key="notification_delay"
android:title="@string/settings_push_delay"
android:entries="@array/settings_push_delay_human_value"
android:entryValues="@array/settings_push_delay_phone_value"
android:defaultValue="????">
</ListPreference>
Run Code Online (Sandbox Code Playgroud)
两个数组:
<string-array name="settings_push_delay_human_value">
<item>every 5 minutes</item>
<item>every 10 minutes</item>
<item>every 15 minutes</item>
</string-array>
<string-array
name="settings_push_delay_phone_value">
<item>300</item>
<item>600</item>
<item>900</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)
当我进入首选项活动时,没有选择ListPreference的项目.我试图在"android:defaultValue"中设置一个类似于1的int值,选择"10分钟",但它不起作用.
<ListPreference android:key="notification_delay"
android:title="@string/settings_push_delay"
android:entries="@array/settings_push_delay_human_value"
android:entryValues="@array/settings_push_delay_phone_value"
android:defaultValue="1">
</ListPreference>
Run Code Online (Sandbox Code Playgroud)
任何的想法?
这是这个问题的延续.
我有一个ASP.NET应用程序,当在DEBUG中的IE8中查看时,有些部分显示不同,显示已发布的TEST服务器位置.
当我在Debug中查看页面时(通过VS 2010),我看到了:

但是,当我发布到服务器并直接查看它时,它看起来像这样:

标题框仅将文本背景颜色设置为黑色而不是整个部分.
这是CSS:
.imageBox
{
position: relative;
float: left;
border-style: solid;
border-width: 1px;
text-align: center;
}
.imageBoxTitle
{
width: 100%;
background-color: #333333;
padding: 5px;
}
.imageBoxTitleLbl
{
font-family: Verdana;
font-weight: bold;
font-size: small;
color: White;
}
Run Code Online (Sandbox Code Playgroud)
这是生成的HTML
<div class="imageBox">
<div class="imageBoxTitle">
<span id="MainContent_ImagesPanel_ImageHolder1_ImageBoxTitleLabel" class="imageBoxTitleLbl">ITEM OVERVIEW</span>
</div>
<div class="imagePlaceHolder">
<p class=".centeredImage"><a id="MainContent_ImagesPanel_ImageHolder1_ImageHyperLink" href="UserImages/nu5t3hhs.jpg" target="_blank"><img src="UserImages/nu5t3hhs.jpg" height="200" width="200" /></a></p>
<span id="MainContent_ImagesPanel_ImageHolder1_CustomValidator1" style="color:Red;visibility:hidden;">*</span>
</div>
<div class="imageAction">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
所以我认为这可能是某种缓存问题.但是,如果我对CSS稍作修改(例如更改背景颜色),它会选择并显示它.此外,我已经为css文件的查询字符串添加了动态生成的GUID,因此它们永远不会被缓存.Fiddler确认他们也没有缓存.
在通过Visual Studio Debug查看直接从服务器访问页面时,IE似乎会以不同方式呈现HTML/CSS.
什么事情可能会导致这种行为?
更新:当我在已发布的服务器上查看Chrome或Firefox中的页面时,它显示正确.我已经清除了IE缓存(ctrl-f5),删除了服务器上的.css并重新启动了等等.
Mike Lischke在VirtualTreeView中有广泛的拖放支持,我使用的是TVirtualStringTree,它有一些拖放事件,但我无法弄清楚如何让它接受shell拖放从Windows资源管理器shell到我的应用程序的一些文件.我想加载文件,当它们被拖动到放置控件上时.
我尝试使用Anders Melander的第三方代码来处理拖放操作,但是因为VirtualTreeView已经将自己注册为放置目标,所以我无法使用它.
编辑:我找到了一个简单的解决方法:在VT.TreeOptions.MiscOptions中关闭toAcceptOLEDrop.如果有人知道如何使用VirtualTreeView而不使用第三方OLE-shell-drag-drop库并使用其广泛的OLE拖放支持来提取从Shell中拖入的文件名列表,那将会很酷.
任何人都可以告诉我Unicode可打印字符的范围是什么?[例如Ascii可打印字符范围是\ u0020 - \u007f]
我有一个sbt(Scala)项目,目前从Web上提取工件.我们希望转向一个可以缓存工件的企业标准化Nexus存储库.从Nexus文档中,我了解如何为Maven项目执行此操作.但是sbt显然使用了不同的方法.(我知道Ivy会以某种方式参与其中,但我从未使用它,也不了解它是如何工作的.)
如何告诉sbt和/或底层Ivy将所有依赖项用于企业Nexus存储库系统?我想要使用某种项目级配置文件的答案,以便我们的源存储库的新克隆将自动使用代理.(即,在点目录中使用每个用户的配置文件捣乱是不可行的.)
谢谢!
只是想知道是否有办法在不丢弃数据库的情况下运行Rails测试.我目前只执行单元测试,并使用以下rake命令执行此操作:rake test:units.
我在这里先向您的帮助表示感谢!
以防这是相关的:
testing unit-testing ruby-on-rails oracle11g ruby-on-rails-3
我正在使用以下技术......
从login.php表单帖子到check.php我执行此操作的页面
<?php
$uzer = $_POST['user_name'];
$pass = $_POST['user_pass'];
require ('DB_connection.php');
$result = mysql_query("SELECT * FROM accounts WHERE user_Name='$uzer' AND user_Pass='$pass'");
if( mysql_num_rows( $result ) > 0)
{
$array = mysql_fetch_assoc($result);
session_start();
$_SESSION['user_id'] = $uzer;
header("Location:loggedin.php");
}
else
{
header("Location:login.php");
}
?>
Run Code Online (Sandbox Code Playgroud)
在loggedin.php页面上我做的第一件事就是
<?php
session_start();
if( !isset( $_SESSION['user_id'] ) )
{
header("Location:login.php");
}
else
{
echo ( "this session is ". $_SESSION['user_id'] );
//show rest of the page and all
}
?>
Run Code Online (Sandbox Code Playgroud)
但是当我直接输入网址时登录后localhost\myProject\loggedin.php …