我正在为应用程序创建自定义消息框.我的对象派生自QMessageBox,但我重写了paintEvent()方法以更改其外观.奇怪的是,虽然我没有在派生方法中调用基础paintEvent方法,但默认情况下我的自定义消息框仍然用OK按钮绘制.这是我的代码:
class MessageWidget : public QMessageBox
{
Q_OBJECT
public:
MessageWidget(QWidget* parent = 0);
~MessageWidget();
void setTitle(const QString& title);
const QString& title() const;
protected:
void paintEvent(QPaintEvent* event);
}
MessageWidget::MessageWidget(QWidget* parent) :
QMessageBox(parent)
{
setWindowFlags(Qt::FramelessWindowHint);
setAutoFillBackground(true);
}
void MessageWidget::paintEvent(QPaintEvent* /*event*/)
{
QPainter painter(this);
QRect boxRect = rect();
QPainterPath path;
path.addRoundedRect(boxRect, 15, 15);
painter.fillPath(path, palette().window());
painter.drawPath(path);
QRect titleRect = boxRect;
int titleHeight = fontMetrics().height();
titleRect.moveBottom(titleHeight);
boxRect.moveTop(titleRect.bottom());
painter.drawLine(titleRect.bottomLeft(), titleRect.bottomRight());
painter.drawText(titleRect, Qt::AlignLeft, "Some Text");
}
当我没有调用基础paintEvent方法时,如何绘制其他东西?
我在visual studio proj2中创建了一个新项目,我希望它与proj1具有相同的程序集引用,所以我打开了proj1.csproj并复制了:
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="system" />
<Reference Include="System.Windows" />
<Reference Include="System.Core" />
<Reference Include="System.Xml" />
<Reference Include="System.Net" />
<Reference Include="System.Windows.Browser" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
并将其粘贴到proj1.csproj中.问题是我的System.Windows程序集引用旁边有一个感叹号,当我尝试单击它时,它说:
无法在对象浏览器中查看此项目,因为它不可用或尚未构建.请确保项目可用并已构建.
当然,在我的.cs文件中,它说
命名空间"System"中不存在类型或命名空间"Windows"(您是否缺少程序集引用?)
如何让我的程序集引用工作?
我正在使用Django 1.2.4.我的模型有一个需要验证的字段.验证失败时,我想向用户显示自定义错误消息.模型编辑在管理界面中完成.
这就是我目前正在做的事情:
def clean_fields(self, exclude=None):
# do validation
if problem:
raise ValidationError({'field_name': "error message"})
Run Code Online (Sandbox Code Playgroud)
不幸的是,所有这一切都是在管理页面上为值中的每个字符打印出单独的验证消息field_name.
发出我想要的错误信息的正确方法是什么?
所有东西最终都被嵌入到本机机器代码中,因此最终,我们在.NET中有一个本机堆栈,只要它进行垃圾收集,GC就需要扫描对象指针.
现在,问题是:.NET垃圾收集器如何确定指向GC堆内对象的指针实际上是托管指针还是碰巧具有与有效地址对应的值的随机整数?
显然,如果它无法区分这两者,那么可能存在内存泄漏,所以我想知道它是如何工作的.或者 - 我敢说 - .NET有可能泄漏内存吗?:o
我一直在寻找一种将JSON对象转换为动态对象的简洁方法.
(我可以转换为一个对象,但Twitter Streaming API实际上发送了两个不同的JSON对象,可能有未来的对象类型!)
我目前使用的代码来自:
但它不是最干净的代码而且我正在玩Web Matrix,并注意到他们有一个很好的JSON.Decode(字符串)和JSON.Encode(对象)方法,并希望利用它们.
http://msdn.microsoft.com/en-us/library/system.web.helpers.json(v=vs.99).aspx
将System.Web.Helpers的引用添加到我的C#控制台应用程序我设法编译一个调用JSON.Decode的解决方案但是...它引发了一个令人讨厌的异常.
这可能取决于我以非预期的方式使用它(在Web Matrix之外),但任何想法?可能期待一个简单的,没有那个愚蠢的回答;-)
尝试通过方法'System.Web.Helpers.Json.Decode(System.String)'访问字段'System.Web.Helpers.Json._serializer'失败.
我正在使用VS2010.
更多细节:System.FieldAccessException被方法'System.Web.Helpers.Json.Decode(System.String)'捕获Message = Attempt以访问字段'System.Web.Helpers.Json._serializer'失败.Source = System.Web.Helpers StackTrace:位于C:\ Users\Administrator\documents\visual studio 2010\Projects\ISMM的Components.DataCollection.ConvertTwitterStream.ConvertTweets()中的System.Web.Helpers.Json.Decode(String value)处\ Components\DataCollection\ConvertTwitterStream.cs:第35行InnerException:
我想要一个场景,当用户点击WPF中的DataGrid中的单元格时,我想在它旁边打开NumPad(这基本上是基于触摸的输入).NumPad,我理解是一个单独的窗口.
1)如何知道选择哪个Cell
2)如何在单元格旁边显示NumPad?
3)如何找到单元格的坐标来定位我的NumPad?
4)如何根据NumPad条目设置单元格的值?
NumPad是同一应用程序中的WPF用户控件.DataGrid是一个.NET 4控件.这是一个普通的Windows桌面应用程序
我有一个Authlogic登录表单,:remote => true如果用户/密码无效,它会使用RJS模板进行一些内联验证.这工作得很好,但是当凭证是有效的,它不正确别处重定向.
这是响应表单输入的控制器:
class UserSessionsController < ApplicationController
respond_to :html, :js
before_filter :require_no_user, :only => [:new, :create]
before_filter :require_user, :only => :destroy
def new
@user_session = UserSession.new
end
def create
@user_session = UserSession.new(params[:user_session])
respond_to do |format|
if @user_session.save
flash[:notice] = "Login successful!"
format.html { redirect_to account_url }
else
format.js
end
end
end
def destroy
current_user_session.destroy
flash[:notice] = "Logout successful!"
redirect_to root_path
end
end
Run Code Online (Sandbox Code Playgroud)
该format.js部分有效但如果用户/密码良好(format.html),则没有任何反应.但是,如果我查看development.log,它会请求account_url页面.它不会在浏览器中重定向您.我认为它通过AJAX返回帐户页面,我真的只想要一个正常的重定向.
表单的HTML是这样的:
<%= simple_form_for(
:user_session, @user_session,
:url …Run Code Online (Sandbox Code Playgroud) 我正在尝试对数据库名称进行一些UI验证.从不同的地方我被告知SQL Server数据库名称在SQL Server中存储为sysname.我还通过检查sys.Databases来验证.
所以,我让UI中的文本框长度为128个字符.这是sysname类型的最大长度.
但是,我发现在我的SQL Server 2005 Express版本中,如果我输入一个长度为128个字符的数据库名称,它总会抱怨
无法创建默认日志文件,因为名称太长
为了确保我能够成功创建数据库,我发现我需要将最大限制设置为124个字符.
我现在的问题是,对于所有不同Windows操作系统上的所有SQL Server版本,是否有124个字符限制?
这些序列文件是如何生成的?我在这里看到了关于序列文件的链接,
http://wiki.apache.org/hadoop/SequenceFile
Run Code Online (Sandbox Code Playgroud)
这些是使用默认的Java序列化器编写的吗?以及如何读取序列文件?
.net ×2
c# ×2
wpf ×2
ajax ×1
apache ×1
authlogic ×1
c++ ×1
closest ×1
clr ×1
database ×1
django ×1
django-admin ×1
hadoop ×1
java ×1
jquery ×1
json ×1
python ×1
qt ×1
qt4 ×1
sql-server ×1
validation ×1
wpf-controls ×1
wpfdatagrid ×1