我正在尝试使用Perl LWP通过Way2sms发送短信.登录部分成功,之后我将cookie保存到本地文件.登录后的欢迎页面显示发送短信链接,点击哪一个被重定向到另一个页面,其中有两个用于移动号码和短信文本的输入以及一个用于提交和发送短信的按钮.Firebug显示页面结构,如图所示.从Iframe网址和表单的action属性,我构造了表单操作的绝对URL并相应地提交表单,并将cookie存储在文件中.但是,短信不会被发送.我在这做错了什么?代码如下.(name两个文本输入的属性是正确的,通过观察Firebug中的源代码来获取,尽管图像中未包含该代码)
use LWP::UserAgent;
open f, "> way2sms.txt";
use HTTP::Cookies;
my $cookie_jar = HTTP::Cookies->new(
file => "cookies.txt",
autosave => 1,
);
my $ua = LWP::UserAgent->new(
agent =>
'Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1',
cookie_jar => $cookie_jar,
);
my $response = $ua->post(
'http://site2.way2sms.com/contentt/bar/Login1.action',
{
username => $user,
password => $pass,
}
);
if ( $response->is_redirect ) {
$response = $ua->get( $response->header('Location') );
print 5 if $response->decoded_content =~ /Kaustav Mukherjee/i; #prints it, showing that the …Run Code Online (Sandbox Code Playgroud) 任何人都可以建议一个Perl模块,它可以比较两个字符串并返回它们匹配的程度吗?我广泛搜索CPAN,虽然有像String :: Approx和Data :: Compare这样的类似模块,但它们并不是我想要的.假设我有两个字符串:我爱你,我爱你.我想要比较这两个字符串的功能,考虑到许多参数,正确顺序的单词匹配(爱作为字符串中的第一个单词不应该"匹配" 爱作为第二个字符串中的第4个单词,即使两个字符串有那个单词),单词不匹配但拼写几乎相似(如说爱和loge),单词数等等,并返回一个索引,比如说1的数字从0到1,代表两者之间的相似程度这两个字符串.有没有这样的Perl模块?
根据许多网站中给出的伪代码,我编写了这个Hoare分区算法,它采用一个数组,根据给定的主元对子数组的开始和结束索引进行分区。它工作得很好,但是有人可以解释一下逻辑,它是如何做到这一点的吗?这是代码:
def hoare(arr,start,end):
pivot = 4
i,j = start,end
while i < j:
while i < j and arr[i] <= pivot:
i += 1
while j >= i and arr[j] > pivot:
j -= 1
if i < j:
arr[i],arr[j] = arr[j],arr[i]
return j
Run Code Online (Sandbox Code Playgroud)
分区还有另一种变体,即Lomuto算法。Hoare它做了类似的事情,尽管由于我一开始就不理解该算法,所以我无法发现其中的区别。谁能解释一下算法中发生了什么,以及在哪种情况下哪种算法能提供更好的性能?
我想找出一个字符串中最长的回文子序列.在任何地方我都找到算法来找出子序列的长度,并且声明可以扩展算法以返回子序列,但是我找不到如何.任何人都可以解释我怎样才能得到序列?
我认为一旦函数返回,所有在其中声明的局部变量(禁止带有static关键字的那些)都是垃圾收集的.但是当我尝试下面的代码时,它仍会在函数返回后打印该值.谁能解释为什么?
int *fun();
main() {
int *p;
p = fun();
printf("%d",*p); //shouldn't print 5, for the variable no longer exists at this address
}
int *fun() {
int q;
q = 5;
return(&q);
}
Run Code Online (Sandbox Code Playgroud) 我想在GWT服务器端代码上使用jSoup来抓取网页.GWT的文档无助于安装外部jar.谁能告诉我如何在GWT中安装jSoup jar(从官方jSoup站点下载)并在服务器端代码中使用它?
我在Facebook上观察到这个功能,当你在右下角打开一个聊天框,然后你去另一个页面,比如你的朋友的个人资料,或Facebook内的一些照片收集页面时,聊天框不会重新加载,它保持原样(就像在背景页面顶部的单独层中一样).
很自然地,我认为Facebook本身没有重新加载页面,它正在使用history.pushstate和相关的函数异步加载内容,并动态更改URL(Firebug确认了,如果你点击你朋友的一个名字并被采取到你朋友的个人资料页面,它实际上是一个GET被解雇的请求).因此,由于没有任何页面加载,聊天框可以只是闲置,就像它一样.
但是,在版本10之前pushstate不支持IE.但是,它也可以正常工作IE9.所以有人能告诉我他们是怎么做到的吗?他们是在使用historyAPI 还是使用不同的东西?
有没有办法用jQuery触发窗口/选项卡关闭事件.我已经试过了
$('selector').unload()
Run Code Online (Sandbox Code Playgroud)
但它没有用.
所以我有这个QFrame是父窗口小部件(this在代码中表示).在这个小部件中,我想QWidget从顶部放置一个10 px(从底部放置10 px,因此它的高度为140px,而父级为160px).在QWidget将具有多个在其内部自定义按钮在垂直布局,在滚动区域,使得当按钮组合的高度超过QWidget's在自动高度(140px),滚动集.由于滚动不是针对整个父窗口小部件,而是针对子窗口小部件,因此滚动应仅适用于此处的子窗口小部件.这是我的代码:
//this is a custom button class with predefined height and some formatting styles
class MyButton: public QPushButton
{
public:
MyButton(std::string aText, QWidget *aParent);
};
MyButton::MyButton(std::string aText, QWidget *aParent): QPushButton(QString::fromStdString(aText), aParent)
{
this->setFixedHeight(30);
this->setCursor(Qt::PointingHandCursor);
this->setCheckable(false);
this->setStyleSheet("background: rgb(74,89,98); color: black; border-radius: 0px; text-align: left; padding-left: 5px; border-bottom: 1px solid black;");
}
//this is where I position the parent widget first, and then add sub widget
this->setGeometry(x,y,width,160);
this->setStyleSheet("border-radius: 5px; background:red;"); …Run Code Online (Sandbox Code Playgroud) 我需要绘制透明窗口(QLabel或QFrame或QWidget),但不使用WA_TranslucentBackground. 原因是窗口将包含通过 OpenGL 呈现的其他子窗口小部件,并且使用该属性使这些窗口在 Windows 上不可见,如此处所述。这在 Mac 上运行良好,但我只需要在 Windows 上使用不同的解决方案,因为它在那里不起作用。我试过这个:设置一个空白pixmap. 但它仍然以灰色背景显示:
#include <QApplication>
#include <QLabel>
#include <QBitmap>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QLabel l;
l.setWindowFlags(Qt::FramelessWindowHint);
QPixmap p("");
l.setPixmap(p);
l.setScaledContents(true);
l.resize(300, 500); //just to test my idea
l.setMask(p.scaled(l.width(),l.height(),Qt::IgnoreAspectRatio,
Qt::SmoothTransformation).mask());
l.show();
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议在 Windows 上实现这一目标的任何其他方法,即完全透明的窗口?平台 - Qt 5.3.1,32 位。
PS - 它不需要表现得像半透明窗口,即可以通过渲染的小部件的透明部分单击背景WA_TranslucentBackground。这里只要它是透明的就可以了,它不需要“通过”点击。
c++ ×2
perl ×2
qframe ×2
qt ×2
qwidget ×2
ajax ×1
algorithm ×1
c ×1
cpan ×1
facebook ×1
gwt ×1
hoare-logic ×1
java ×1
javascript ×1
jquery ×1
jsoup ×1
lwp ×1
partitioning ×1
python ×1
qscrollarea ×1
transparent ×1
way2sms ×1