问题列表 - 第39824页

如何从RabbitMQ中删除队列绑定?

我正在使用RabbitMQ按主题将消息路由到感兴趣的订阅者.每个订阅者都有一个队列,我将队列绑定到他们感兴趣的主题.我想允许用户从他们的主题列表中删除一个项目.

在我的设置中,这将需要从该用户的队列中"解除绑定"绑定主题.

我正在使用pyamqplib,我没有看到通过通道对象做到这一点的方法.他们是从队列中删除以前绑定的路由密钥的方法吗?

amqp rabbitmq py-amqplib

8
推荐指数
2
解决办法
6911
查看次数

jQuery确定元素是否存在于页面上

如何确定页面上是否存在元素...例如......

$('select[name="modifier_option"]')
Run Code Online (Sandbox Code Playgroud)

如果屏幕上存在该选择框,我需要在页面上验证它的值以确保它的值> 0,但如果它不存在,我不需要担心它.

javascript jquery

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

QGraphicsView和自定义游标

我正在尝试为我的QGraphicsView使用自定义游标和预设游标的混合.在我的实现中,我们为视图创建了"模式"的概念.这意味着根据用户所处的"模式",左键单击或左键单击拖动会发生不同的事情.无论如何,这不是问题,只是上下文.

当我尝试更改每个模式的光标时出现问题.例如,对于模式1,我们想要显示常规箭头光标,但对于模式2,我们想要使用自定义像素图.graphicsview->viewport()->setCursor(Qt::QArrowCursor)  我们在切换到模式1和graphicsview->viewport()->setCursor(our custom cursor)模式2 时看起来很简单.除了它根本不起作用.

首先,光标不会更改为自定义光标.这是第一个问题.但是,如果通过另一个操作,图形视图的拖动模式设置为ScrollHandDrag,则一旦拖动操作完成,光标将切换到自定义光标.奇怪的.但情节变浓了......一旦我们切换到自定义光标,无论我们调用多少次,它都永远不会变回ArrorCursor setCursor(Qt::QArrowCursor).我是否在视口或图形视图本身上调用setCursor似乎并不重要.

所以,为了好玩,我graphicsview->unsetCursor()在我们想要更改光标之前添加了一个调用,这至少可以解决第二个问题.只要我们在它们之间做一点HandDragging,光标就会变好.更好,但肯定不是最佳的.但是应该注意,在视口上执行unsetCursor不起作用.它绝对必须在graphicsview上完成 - 无论我们是否在视口上设置光标.

为了完全修补问题,我在设置光标后添加了这两行:

graphicsview->setDragMode(QGraphicsView::ScrollHandDrag);
graphicsview->setDragMode(QGraphicsView::NoDrag);
Run Code Online (Sandbox Code Playgroud)

哪个有效,但你们加油!所以在这两个方法中发生了一些神奇的事情来修复问题,但是看了一下我看不到的代码.与拖动模式正在改变我想象的光标这一事实有关.

为了完整起见,我还应该提到触发模式更改的事情是使用已添加到场景中的QPushButton QGraphicsScene->addWidget().我不知道这与它有什么关系,但你永远不知道.

我希望有人能澄清为什么我需要做这些看似随机的电话.我不认为我在任何地方做错了什么.在此先感谢您的帮助.

编辑:这是一个实际的代码示例,其中包含如上所述的光标补丁.您可以从以下链接查看和/或下载它们.粘贴这里有点长.我包含了游标更改的框架,因为我有一种有趣的感觉,这在某种程度上很重要.

https://gist.github.com/712654

问题所在的代码是从第104行开始的MyGraphicsView.cpp.这是在图形视图中设置光标的位置.完全如上所述.

请记住,游标可以使用非常难看的补丁 - 或多或少.没有这些线条,您将非常清楚地看到上面帖子中列出的问题.

链接中还包含使用视图等的mainWindow的所有代码...唯一缺少的是我正在使用的图像.但是图像本身并不重要,任何16x16 png都可以.

c++ qt qt4

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

window.onmousemove在IE和Firefox中

以下代码的目的是当用户按住SHIFT键时,某些文本将指示他们正在按下它.它在Firefox中运行良好,但IE不承认它.

window.onmousemove = function(e) {
        e = e || window.event;
        var copyLabel = document.getElementById("<%= lblCopyEnabled.ClientID %>");
        if (e.shiftKey) {
            copyLabel.style.display = "inline";
            ob_copyOnNodeDrop = true;
        }
        else {
            copyLabel.style.display = "none";
            ob_copyOnNodeDrop = false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

建议表示赞赏.

javascript javascript-events

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

将一个对象转换为另一种类型

我有一个名为A的班级和一个班级B.

public class A : UserControl { }

public class B : UserControl { }
Run Code Online (Sandbox Code Playgroud)

现在我有一个程序集,其类的函数接受A类的对象.这个程序集不是由我创建的,所以我没有任何控制.基本上它是第三方组装.

但我想提供我的B类对象,因为它是有点自定义的.请放心,它包含A类的所有属性.如何将类B的对象类型转换为A类,以便我可以在项目中集成第三方程序集,并根据我的需要自定义外观和感觉?

如果我这样的东西(A)objB是不允许的.然后我尝试了这个:

UserControl control = objB as UserControl;

A objA = control as A;
Run Code Online (Sandbox Code Playgroud)

但是在这种情况下的问题是objA是null.

为避免混淆:A类和汇编由第三方提供.

提前致谢 :)

c# user-controls casting as-operator

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

为什么不"glEnable(GL_POINT_SMOOTH);" 努力使以下几点成为一个圆圈?

我正在尝试使用GL_POINT为每个棋子编码(在c中,使用opengl)一块棋盘游戏.我有以下代码:

        glEnable(GL_POINT_SMOOTH);
        glHint(GL_POINT_SMOOTH_HINT, GL_NICEST);
        glPointSize(20.0f);
        glBegin(GL_POINTS);

        glVertex2d(200, 200);

        glEnd();
Run Code Online (Sandbox Code Playgroud)

Bur出于某种原因,这个点总是显示为正方形,而不是圆形...有谁知道为什么?

c opengl

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

如何更改选项菜单按钮的大小?

我有一个选项菜单(当你按下手机的菜单键时弹出它)有5个按钮,所有这些按钮都有一个48x48的图像和文字.

现在五个按钮显示为两行,但我希望减小它们的大小以使所有五个按钮适合一行.

我怎样才能做到这一点?

我可以在菜单的布局XML文件中使用参数吗?

android options-menu

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

使用slf4j/logback时如何打包webapp?

我有很多用于构建/打包的Web应用程序,我想分享他们的公共库.

关于日志记录,我想将slf4j-api与每个应用程序捆绑在一起,但考虑我的容器(当前是tomcat)提供的实现

为此,我将两个jar,logback-classic和logback-core复制到$ CATALINA\lib目录中.

不幸的是,在运行时,slf4j与其实现之间的绑定失败,并显示以下错误消息:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Run Code Online (Sandbox Code Playgroud)

我设法使它工作的唯一方法是在战争文件中捆绑jar.

有任何想法吗?

tomcat packaging logback slf4j maven

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

为什么RMI localhost客户端使用no localhost ip连接RMI localhost服务器

我们在同一台计算机上使用客户端/服务器RMI通信(因此所有ip都应该是localhost).

我们启动注册表(使用默认端口1099)

registry = LocateRegistry.createRegistry(port);

并将一些对象导出到RMI注册表

Naming.rebind("//" + "localhost" + ":" + port + "/" + name, object);

从另一个进程我们检索一些对象(记住一切都在localhost中运行)

MyRemoteObject ro = (MyRemoteObject) Naming.lookup("//" + "localhost" + ":" + port + "/" + name);

当您从局域网工作开始运行应用程序时,会发生此问题,并且在此过程中您禁用网络连接.如果你运行应用程序并且局域网正在运行没有问题弹出窗口,并且如果你运行应用程序并且局域网不工作没有问题弹出窗口.当您在运行应用程序时更改LAN时,就会发生这种情况.

执行Naming.lookup()方法时抛出的异常是这样的:

java.lang.RuntimeException: java.rmi.ConnectIOException: Exception creating connection to: 192.168.x.x; nested exception is: java.net.NoRouteToHostException: No route to host: connect

调试了一下我发现了

RemoteObject($ Proxy0) - > RemoteObjectInvocationHandler - > UnicastRef2 - > LiveRef - > TCPEndpoint

有主机的IP(例如:192.168.xx)而不是"localhost"或127.0.0.1(它将是我想要的).而且,liveRef对象的isLocal布尔值始终为false.

我不知道它是否足够清楚.抱歉!!!

你有什么建议吗?

我的尝试:

我试过这个解决方案

  1. 使用-Djava.rmi.server.hostname = localhost参数运行jvm
  2. 每次重新定义RMIServerSocketFactory以返回127.0.0.1.(TCPEndpoint的ip为192.168.xx,isLocal总是为false)
  3. 在URI中调用没有主机的重新绑定和查找.这应该是localhost.

但这些都没有奏效.

任何建议都将受到欢迎.

java connection rmi localhost

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

PHP格式字节转换为Javascript

不是一个问题,而是一种挑战..

我有这个PHP函数,我总是使用,现在我需要它在Javascript中.

function formatBytes($bytes, $precision = 0) {
    $units = array('b', 'KB', 'MB', 'GB', 'TB');
    $bytes = max($bytes, 0);
    $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
    $pow = min($pow, count($units) - 1);
    $bytes /= pow(1024, $pow);
    return round($bytes, $precision) . ' ' . $units[$pow];
}
Run Code Online (Sandbox Code Playgroud)

编辑:感谢回复,我提出了更短的内容,但没有精确(如果你有一些想法,请告诉我)

function format_bytes(size){
    var base = Math.log(size) / Math.log(1024);
    var suffixes = ['b', 'KB', 'MB', 'GB', 'TB' , 'PB' , 'EB'];
    return Math.round(Math.pow(1024, base - Math.floor(base)), 0) + ' ' + suffixes[Math.floor(base)]; …
Run Code Online (Sandbox Code Playgroud)

javascript php format bytestring

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