|
楼主 |
发表于 2005-11-26 20:13:20
|
显示全部楼层
[quote:b11edfd8fd="yunfan"][quote:b11edfd8fd="sejishikong"]
对了,yunfan,你知道在QT下怎么取得这个页面的内容么?http://www.sopcast.org/channel
[/quote]
你参考一下下面的思路, 我刚才试了,可以下到
[code:1]
#include <qhttp.h>
#include <qfile.h>
class TestHttp : QObject
{
Q_OBJECT
public:
TestHttp();
~TestHttp();
void go();
private:
QHttp *http;
QFile *tmpFile;
public slots:
void slotDone(bool error);
};
[/code:1]
[code:1]
#include "testhttp.h"
TestHttp::TestHttp() : QObject()
{
http = new QHttp();
connect(http, SIGNAL(done(bool)), SLOT(slotDone(bool)));
}
TestHttp::~TestHttp()
{
if(http) delete http;
}
void TestHttp::go()
{
tmpFile = new QFile("tmp.php");
if(!tmpFile->open(IO_WriteOnly)){
printf("cannot create the file\n");
return;
}
http->setHost("www.sopcast.org");
http->get("/channel/index.php", tmpFile);
}
void TestHttp::slotDone(bool error)
{
tmpFile->close();
delete tmpFile;
if(error) printf("load page error!\n");
}
[/code:1]
[quote:b11edfd8fd="sejishikong"]
另外,能不能给一个动态生成菜单并且点击菜单进行播放的思路。[/quote]
我看你好像搞成动态的了么。
你在主程序里放个 QPopupMenu 的指针, 然后, 在 TrayIcon 里只要set这个menu, 你一旦下载到了新的列表, 更新主程序的全局的menu好了。
QPopupMenu *menu;
然后 connect activate(int) 这个信号,
[code:1]
QObject::connect(menu, SIGNAL(activated(int)), this, SLOT(slotMenuActivated(int)));
[/code:1]
每次更新的时候, 大概这么搞一下吧
menu->clear();
按播放列表list的次序一个一个加到 menu 里,
int id=0;
for(iter=palyList.begin(); iter!=playList.end(); ++iter){
menu->insertItem(*iter, id++);
}
在slotMenuActivated 里, 按index找到要放的, 按一般的方法调用就好了。
你看一下, 是不是能帮上忙。[/quote]
非常感谢,原来是index.php,试了好几个都不对:D
嗯,其实动态菜单的思路我也是这么做的,但是有个问题,这样的话,停止、退出什么的一点也调用这个SLOT了,我不知道是怎么回事。 |
|