小编Gab*_*Gab的帖子

方法参数extends class implements interface

我有以下类和接口:

public class BasicObject{...}
public interface CodeObject{...}
Run Code Online (Sandbox Code Playgroud)

我想创建一个方法,其中参数需要是BasicObject类型并实现CodeObject.我尝试了以下代码,但它不保证clazz是一个实现CodeObject的类.

myMethod(Class<? extends BasicObject> clazz){...}
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情,但它不编译:

myMethod(Class<? extends BasicObject implements CodeObject> clazz){...}
Run Code Online (Sandbox Code Playgroud)

java

63
推荐指数
3
解决办法
8万
查看次数

淘汰赛中的<input> lostfocus/onblur事件

我想在一个敲除的观察点上执行一个事件input.当控件失去焦点时,即使没有输入任何内容,也应执行此功能.我尝试更改事件绑定但是当用户离开控件而不键入任何内容时它不会触发.我尝试过mouseout事件,但只有当用户在失去焦点后点击表单中的其他地方时才会触发 - 这不是我想要的.即使使用制表符,我也希望一旦焦点从控件移开,偶数就会闪光.

以下是我用于mouseout事件的代码:

<input
    type="text"
    id="txtFirstName"
    tabindex="1"
    maxlength="25"
    class="txtbox" 
    style="width: 200px;"
    data-bind="value: FirstName, 
               attr: {title: FirstNameErrorMessage },
               css: {validationFailed: !IsValidFirstName() },
               event: {mouseout: ValidateFirstName}" 
/>

this.ValidateFirstName = function () {
    self.IsValidFirstName(true);
    self.FirstNameErrorMessage('');
    if (self.FirstName() == '') {
        self.IsValidFirstName(false);
        self.FirstNameErrorMessage('First Name is required');
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

event-binding mouseout knockout.js

26
推荐指数
5
解决办法
3万
查看次数

如何在HTML中设置按钮的大小

我的纯HTML/JS页面上有一些按钮.在浏览器中打开页面时,按钮大小正常.但是在刷新/重新加载页面上,按钮大小会减小.实际上,我没有设置按钮文本值.按钮的文本为空白.我应该如何在HTML中设置按钮的大小而不考虑文本的大小?

html button

23
推荐指数
3
解决办法
30万
查看次数

Python-Requests,从字符串中提取url参数

我正在使用这个令人敬畏的库requests来维护python 2和3兼容性并简化我的应用程序请求管理.

我有一个案例,我需要解析一个网址并替换其中一个参数.例如:

http://example.com?param1=a&token=TOKEN_TO_REPLACE&param2=c
Run Code Online (Sandbox Code Playgroud)

我希望得到这个:

http://example.com?param1=a&token=NEW_TOKEN&param2=c
Run Code Online (Sandbox Code Playgroud)

随着urllib我可以这样做:

from urllib.parse import urlparse
from urllib.parse import parse_qs
from urllib.parse import urlencode

url = 'http://example.com?param1=a&token=TOKEN_TO_REPLACE&param2=c'

o = urlparse(url)
query = parse_qs(o.query)
if query.get('token'):
    query['token'] = ['NEW_TOKEN', ]
    new_query = urlencode(query, doseq=True)
    url.split('?')[0] + '?' + new_query

>>> http://example.com?param2=c&param1=a&token=NEW_TOKEN
Run Code Online (Sandbox Code Playgroud)

你如何使用requests图书馆实现同样的目标?

python python-3.x python-requests

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

从C#代码生成包含触发器的WPF样式

我在生成包含来自C#代码的触发器的WPF样式时遇到了一些麻烦.这是我想通过C#生成的WPF代码.

<Style.Triggers>
    <Trigger Property="IsMouseOver" Value="true">
        <Setter Property="BitmapEffect">
            <Setter.Value>
                <OuterGlowBitmapEffect GlowColor="Gold" GlowSize="10" />
            </Setter.Value>
        </Setter>
    </Trigger>
</Style.Triggers>
Run Code Online (Sandbox Code Playgroud)

我alredy尝试生成这样的:

Style style = new Style();
Trigger trigger = new Trigger();
Setter setter = new Setter();

style.Triggers.Add(trigger);
trigger.Property = (DependencyProperty.Register("IsMouseOver", Type.GetType("IsMouseOver"), Type.GetType("Canvas"))); //Line not tested
//trigger.Setters.Add(new Setter(new BitmapEffect()); //Line not working
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何使用带有BitmapEffect的trigger.Setters

提前谢谢你!

c# wpf xaml styles

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

使WrapPanel尊重父母的宽度

好的,这是我的代码.请注意,StackPanel直接位于UserControl中.

<UserControl>
    <StackPanel Orientation="Horizontal">

        <ScrollViewer Width="450"
                      VerticalScrollBarVisibility="Auto"
                      HorizontalScrollBarVisibility="Disabled">

            <Rectangle Width="400" Height="4000" Fill="BlanchedAlmond"/>
        </ScrollViewer>

        <ScrollViewer VerticalScrollBarVisibility="Auto"
                      HorizontalScrollBarVisibility="Disabled">

            <ItemsControl BorderBrush="Green"
                          BorderThickness="2"
                          ItemsSource="{Binding Path=MyObservableCollection}"
                          ItemTemplate="{StaticResource FatTemplate}">

                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel Orientation="Horizontal"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>

            </ItemsControl>
        </ScrollViewer>

    </StackPanel>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

(代码已编辑)

请注意,矩形就在那里,因为该滚动查看器的内容无关紧要.

问题是WrapPanel只是水平扩展而不包裹......

我找到了一些解决方案:

  1. 为WrapPanel提供绝对宽度(但随后窗口不会调整大小).

  2. 将宽度绑定到其父宽度 - ItemsControl或ScrollViewer(ScrollViewer在像这样的有限情况下工作得更好).

    Width="{Binding RelativeSource=
        {RelativeSource FindAncestor,
        AncestorType={x:Type ScrollViewer}},
        Path=ActualWidth}"
    
    Run Code Online (Sandbox Code Playgroud)

这种技术的问题在于,如果一个控件在StackPanel或Grid旁边,你需要将它绑定到它的父级大小减去旁边的控件.然后是艰难的东西.我构建了一个转换器,它对接收的数字应用数学运算,因此我可以从父宽度中减去给定的宽度:

Width="{Binding RelativeSource=
    {RelativeSource FindAncestor,
    AncestorType={x:Type UserControl}},
    Path=ActualWidth,
    Converter={StaticResource Convertisseur_Size_WXYZ}, 
    ConverterParameter=-260}"
Run Code Online (Sandbox Code Playgroud)

但是,由于您无法绑定传递给ConverterParameter的值,

ConverterParameter={Binding ...} (doesn't work)
Run Code Online (Sandbox Code Playgroud)

我想要:

  • 能够使用我的WrapPanel和ScrollViewer调整大小来调整我的应用程序的大小,
  • 我的UserControl易于维护,
  • 我的代码比依赖父控件的Type的大型绑定表达式更干净.

什么是更好的解决方案?

注意:如果有任何不清楚的地方,我可以添加细节.

.net wpf user-controls wrappanel scrollviewer

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

Python ftplib:显示FTP上传进度

我使用Python 3.4上传FTP文件.

我希望能够在上传文件时显示进度百分比.这是我的代码:

from ftplib import FTP
import os.path

# Init
sizeWritten = 0
totalSize = os.path.getsize('test.zip')
print('Total file size : ' + str(round(totalSize / 1024 / 1024 ,1)) + ' Mb')

# Define a handle to print the percentage uploaded
def handle(block):
    sizeWritten += 1024 # this line fail because sizeWritten is not initialized.
    percentComplete = sizeWritten / totalSize
    print(str(percentComplete) + " percent complete")

# Open FTP connection
ftp = FTP('website.com')
ftp.login('user','password')

# Open the file and upload it …
Run Code Online (Sandbox Code Playgroud)

python python-3.4

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

Neo4j,匹配节点只有一个标签

我有2种类型的节点.第一种类型有:Schema标签.第二种类型有两个:Root:Schema标签.我想写一个只匹配第一种类型的密码(只包含:Schema标签).

我试过这个:

MATCH (s:Schema) return s;
Run Code Online (Sandbox Code Playgroud)

哪个返回两种类型.第二种类型也很简单,你只需使用即可

MATCH (s:Schema:Root) return s;
Run Code Online (Sandbox Code Playgroud)

那么,什么是匹配节点的正确密码与确切的请求标签?

neo4j cypher

7
推荐指数
2
解决办法
922
查看次数

如何在Javascript中声明一个字节数组

我正在做服务器端 javascript,我需要有一个特定大小的字节类型数组。我试过 :

var buf = [1024]; (guives me Cannot convert org.mozilla.javascript.NativeArray@1e565bd to byte[] error)
var buf = byte[1024]; (wrong synthax)
Run Code Online (Sandbox Code Playgroud)

合成器是什么?

javascript

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

如何在SoapUI中将全局类定义为groovy脚本?

我想在一个groovy脚本中定义一个类,我可以通过SoapUI中的其他groovy脚本重用它.

我想尝试在TestSuite属性中定义我的类,但它不起作用.我想避免在JAR中定义类,因为我们在团队中工作,每个人都必须在他们的SoapUI中导入JAR才能运行我的测试.我使用SoapUI 3.6.1

以下是我的TestSuite的制作方法:

TestSuite
  TestCase
    TestSteps
       Init         (Groovy Script)
       GetResponse1 (Test Request)
       Test1        (Groovy Script)
       GetResponse2 (Test Request)
       Test2        (Groovy Script)
Run Code Online (Sandbox Code Playgroud)

为了简化测试,我在'Test1'中定义了一个类,我想在'Test2'中重用这个类.理想情况下,我会在'Init'中定义该类,并且任何其他groovy脚本都可以访问它.

我怎样才能实现这一目标?

groovy soapui

5
推荐指数
3
解决办法
7181
查看次数