问题列表 - 第34194页

什么Qt小部件用于只读,可滚动,可折叠,图标列表

我对Qt比较陌生,并不完全熟悉开箱即用的小部件.我有一个(但不是很)非常复杂的小部件来创建,并且不想重新发明任何轮子.什么是最好的QWidget用作子类和/或QWidgets用于组成我的小部件的起点.这是我正在寻找的最终结果(粗略绘图道歉):

窗口小部件

关键点:

  • 所有图标将占用相同的大小,例如128 x 128.忽略类别分组,它们都应该在一个漂亮的网格中对齐.
  • 小部件应该展开以填充它可以采用的所有水平和垂直区域.水平扩展/收缩可以增加/减少每行中显示的图标数量.
  • 图标被分组,这些组应该是可折叠的.
  • 如果窗口小部件的高度超出其空间,则应显示垂直滚动条.

user-interface qt widget qwidget

14
推荐指数
1
解决办法
3720
查看次数

使用Reflection.Emit实现INotifyPropertyChanged

使用C#/ .Net 4.0,我将数据存储在BindingList中,其中dataRow是在运行时通过Reflection.Emit定义的.(传入数据的结构各不相同,由外部源定义.)在我第一次涉足反射和IL的世界之后,我已经能够创建我的dataRow用值填充它,填充我的BindingList和在网格中显示结果.我现在正在尝试在对数据进行更改时实现INotifyPropertyChanged接口和PropertyChangedEventHandler.用这个作为指南,我已经运行了代码,但似乎没有出现RaisePropertyChanged事件正在触发或它只是没有做任何事情.当我通过ildasm.exe将我的动态版本与普通/静态版本进行比较时,我发现remove_PropertyChanged和add_PropertyChanged方法存在重大差异.任何人都可以提供一些通过反射实现INotifyPropertyChanged接口的技巧或示例.

经过进一步检查后,似乎事件字段必须为null,因此不会调用PropertyChangedEventHandler.我在RaiseProprtyChanged方法构建器中添加了一些消息框,我发现if(PropertyChanged!= null)的等价物返回零/ false,因此没有任何反应.如果我将OpCodes.Brtrue更改为OpCodes.Brfalse,我会得到一个"对象引用未设置为对象的实例"消息.感觉我错过了一些简单的东西,但我找不到它.

            //implement IINotifyPropertyChanged interface
        tb.AddInterfaceImplementation(typeof(INotifyPropertyChanged));

        //property changed event handler
        FieldBuilder eventField = tb.DefineField("PropertyChanged", typeof(PropertyChangedEventHandler), FieldAttributes.Private);

        EventBuilder eb = tb.DefineEvent("PropertyChanged", EventAttributes.None, typeof(PropertyChangedEventHandler));

        MethodBuilder mbEV = tb.DefineMethod("remove_PropertyChanged", MethodAttributes.Public |
            MethodAttributes.SpecialName | MethodAttributes.NewSlot |
            MethodAttributes.HideBySig | MethodAttributes.Virtual |
            MethodAttributes.Final, null, new[] { typeof(PropertyChangedEventHandler) });

        MethodImplAttributes eventMethodFlags = MethodImplAttributes.Managed; //| MethodImplAttributes.Synchronized;
        mbEV.SetImplementationFlags(eventMethodFlags);
        il = mbEV.GetILGenerator();
        il.Emit(OpCodes.Ldarg_0);
        il.Emit(OpCodes.Ldarg_0);
        il.Emit(OpCodes.Ldfld, eventField);
        il.Emit(OpCodes.Ldarg_1);
        il.EmitCall(OpCodes.Call, typeof(Delegate).GetMethod("Remove", new[] { typeof(Delegate), typeof(Delegate) }), null);
        il.Emit(OpCodes.Castclass, typeof(PropertyChangedEventHandler));
        il.Emit(OpCodes.Stfld, eventField);
        il.Emit(OpCodes.Ret);
        MethodInfo miRemoveEvent …
Run Code Online (Sandbox Code Playgroud)

c# reflection inotifypropertychanged

5
推荐指数
1
解决办法
2801
查看次数

无法在sql server中恢复数据库(single_user)

我正在尝试在我的sql server 2005 express版中恢复数据库.我知道要恢复数据库,我需要让它成为单个用户.我给这个命令让它成为单个用户

USE [master]
ALTER DATABASE database_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Run Code Online (Sandbox Code Playgroud)

这个命令执行得很正常,我甚至可以在这个数据库的对象资源管理器中看到一个小图像,显示这个现在是单个用户.

现在我尝试通过以下步骤恢复数据库 - >右键单击数据库和任务,然后恢复数据库.我正在选择备份文件所在的路径,然后单击"还原".

但我仍然得到这个错误"因为数据库正在使用中无法获得独占访问权限(microsoft.sqlserver.smo).我错过了什么.我用Google搜索了所有网站,并且所有网站都建议数据库需要在单个用户中模式,没有别的.

我没有尝试分离和附加数据库方法.我以前从未这样做过,想知道这样做是否安全.

编辑:谢谢你的答案.两个人都建议我回答相同,所以我选择了一个答案.

我甚至选择从选项覆盖现有数据库.

sql-server sql-server-2005-express

7
推荐指数
1
解决办法
1万
查看次数

WPF使用样式从嵌套元素内绑定到父属性

我一直在尝试构建一个带有提示的文本框,当它显示为空时显示.我在一个样式中设置提示文本时遇到问题.

确切地说,这是有效的(也就是说,它正确绑定):

    <TextBox Tag="hint text">
        <TextBox.Background>
            <VisualBrush Stretch="None">
                <VisualBrush.Visual>
                    <TextBlock Text="{Binding Tag, RelativeSource={RelativeSource AncestorType=TextBox}}" FontStyle="Italic" Foreground="LightGray" />
                </VisualBrush.Visual>
            </VisualBrush>
        </TextBox.Background>
    </TextBox>
Run Code Online (Sandbox Code Playgroud)

但是,当我将它移动到Style时,它不会:

<Style TargetType="TextBox" x:Key="stlHintbox">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Text, RelativeSource={RelativeSource Mode=Self}}" Value="">
            <Setter Property="Background">
                <Setter.Value>
                    <VisualBrush Stretch="None">
                        <VisualBrush.Visual>
                            <TextBlock Tag="inner" Text="{Binding Tag, RelativeSource={RelativeSource AncestorType=TextBox}}" 
                                       FontStyle="Italic" Foreground="LightGray" />
                        </VisualBrush.Visual>
                    </VisualBrush>
                </Setter.Value>
            </Setter>
        </DataTrigger>
    </Style.Triggers>
</Style>

<TextBox Tag="hint text" Style="{StaticResource stlHintbox}" />
Run Code Online (Sandbox Code Playgroud)

那捕获的是什么?如何从样式中绑定祖先属性?

wpf styles relativesource

15
推荐指数
2
解决办法
2万
查看次数

Windows Azure - Web角色无法访问本地开发队列存储

我有一个在我的解决方案中的多个Role项目之间共享的类库.其中两个项目是Web角色和工作者角色.

它们各自具有相同的配置设置:

<Setting name="QueueConnectionString" value="UseDevelopmentStorage=true" />
Run Code Online (Sandbox Code Playgroud)

他们每个人都在调用这个函数:

public static void AddMessage(string Message)
    {
        var account = CloudStorageAccount.DevelopmentStorageAccount;
        ServicePoint queueServicePoint = ServicePointManager.FindServicePoint(account.QueueEndpoint);
        queueServicePoint.UseNagleAlgorithm = false;
        var client = account.CreateCloudQueueClient();
        var queue = client.GetQueueReference(DefaultRoleInstanceQueueName);
        queue.CreateIfNotExist();
        queue.AddMessage(new CloudQueueMessage(Message));
 }
Run Code Online (Sandbox Code Playgroud)

当它在Worker Role中执行时,它可以正常工作; 我已经确认了Queue消息的正确读写.当它在Web角色中执行时,对queue.CreateifNotExist()的调用崩溃并显示错误"响应在此上下文中不可用".我试图搜索可能导致这种情况的信息,但到目前为止,我的搜索工作一直没有结果.如果我可以提供任何其他信息,请告诉我.

azure azure-storage azure-web-roles azure-queues

2
推荐指数
1
解决办法
771
查看次数

为正则表达式编写解析器

即使经过多年的编程,我也很惭愧地说我从未真正完全掌握正则表达式.一般来说,当一个问题需要一个正则表达式时,我通常(在一堆引用语法之后)得出一个合适的一个,但这是一种我发现自己经常使用的技术.

所以,为了自学并正确地理解正则表达式,我决定在尝试学习时做我一直做的事情; 也就是说,一旦我觉得我已经学到了足够多的东西,就试着写一些我可能会放弃的野心勃勃的东西.

为此,我想在Python中编写一个正则表达式解析器.在这种情况下,"学习足够"意味着我想实现一个可以完全理解Perl的扩展正则表达式语法的解析器.但是,它不一定是最有效的解析器,甚至不一定在现实世界中可用.它只需要正确匹配或不匹配字符串中的模式.

问题是,我从哪里开始?我几乎不知道如何解析和解释正则表达式,除了它以某种方式涉及有限状态自动机这一事实.如何处理这个相当艰巨的问题的任何建议将非常感激.

编辑:我应该澄清一下,当我要在Python中实现正则表达式解析器时,我并不过分讨论编写示例或文章的编程语言.只要它不在Brainfuck中,我可能会理解这让它值得我这么做.

python regex parsing

68
推荐指数
4
解决办法
2万
查看次数

你可以在html表中的行之间使用cellspacing而不需要列

我正在寻找一个解决方案,在表的每一行之间但不在列之间有单元间距.这可能吗?

html css css-tables

3
推荐指数
1
解决办法
3219
查看次数

块选择模式有什么好处?

这里有长期的Eclipse用户; 我最近发现了添加到Eclipse 3.5中的"块选择模式"(Alt-Shift-A).我尝试了它,它非常整洁 - 我可以在我的源代码中选择一个文本矩形,而不是像往常一样选择一行一行.

显然这个功能在其他编辑器中也很常见,在"列编辑模式"等其他名称下也是如此.很多人似乎真的很喜欢它,但是我已经很久没有了.

所以我的问题是:这个功能有哪些用处?

我能想到的唯一一个是在一大块文本前插入注释字符(如//或#).另外,我想如果我有一堆变量名称都排成一行,我想立即更改所有这些变量的第一个字符.但肯定还有更多呢?我的意思是,在选择编辑器时,这个功能对某些人来说显然是一个交易破坏者!

eclipse text-editor editor

10
推荐指数
1
解决办法
2477
查看次数

HTML5 <audio>/<video>和使用FFMPEG进行实时转码

因此,从我的Web服务器,我想使用FFMPEG转码媒体文件以用于HTML <audio><video>标记.够容易吧?

当HTTP客户端请求转换后的文件时,转换需要实时进行.理想情况下,文件将被转码回HTTP客户端,因为它正在进行转码(而不是之后的结尾,因为在任何数据开始被发回之前可能需要一段时间).

这很好,除了在今天的浏览器中,HTML5音频或视频标签使用Range标头在多个HTTP请求中请求媒体文件.有关详情,请参阅此问题.

在上面链接的那个问题中,你可以看到Safari请求文件的奇怪块,包括结尾的几个字节.这带来了一个问题,即Web服务器必须等待转换完成,以便传送文件的最后字节以符合Range请求.

所以我的问题是,我的思路是否合适?是否有更好的方法可以将转码内容提供给<audio>或者<video>标记,而不必等待整个转换完成?提前致谢!

audio video html5 ffmpeg transcoding

20
推荐指数
2
解决办法
1万
查看次数

Django模板ifequal - 请求GET和对象id

为什么这不一样?

{% ifequal gender.id request.GET.gender %} {{gender.name}} {% endifequal %}
Run Code Online (Sandbox Code Playgroud)

gender.id = 1 request.GET.gender = 1

请帮忙,我觉得这很简单:)

django templates

1
推荐指数
1
解决办法
3249
查看次数