嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 1 元微信扫码支付:1 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
做客户端编程都喜欢研究各语言的仿360页面。我也上传一个基于qt的360页面源码,供给大家学习使用。
void MainWidget::initLocalConnection()
{
is_running = false;
QCoreApplication::setApplicationName("localserver");
QString serverName=QCoreApplication::applicationName();
QLocalSocket socket;
socket.connectToServer(serverName);
if(socket.waitForConnected(500))
{
is_running =true;
return;
}
//连接不上服务器,就创建一个
server = new QLocalServer(this);
connect(server, SIGNAL(newConnection()), this, SLOT(newLocalConnection()));
if(server->listen(serverName))
{
//防止程序崩溃时,残留进程服务,移除之
if(server->serverError() == QAbstractSocket::AddressInUseError && QFile::exists(server->serverName()))
{
QFile::remove(server->serverName());
server->listen(serverName);
}
}
}
void MainWidget::newLocalConnection()
{
QLocalSocket *socket = server->nextPendingConnection();
if(!socket)
return;
socket->waitForReadyRead(1000);
delete socket;
}
bool MainWidget::isRunning()
{
return is_running;
}
void MainWidget::paintEvent(QPaintEvent *event)
{
DropShadowWidget::paintEvent(event);
QPainter painter(this);
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::white);
painter.drawPixmap(QRect(SHADOW_WIDTH, SHADOW_WIDTH, this->width()-2*SHADOW_WIDTH, this->height()-2*SHADOW_WIDTH), QPixmap(skin_name));
}
void MainWidget::showSkinWidget()
{
skin_widget->show();
}
void MainWidget::showMainMenu()
{
//设置主菜单出现的位置
QPoint p = rect().topRight();
p.setX(p.x() - 90);
p.setY(p.y() 25);
main_menu->exec(this->mapToGlobal(p));
}
void MainWidget::iconIsActived(QSystemTrayIcon::ActivationReason reason)
{
switch(reason)
{
//点击托盘图标之后松开
case QSystemTrayIcon::Trigger:
{
showWidget();
break;
}
//双击托盘图标
case QSystemTrayIcon::DoubleClick:
{
showWidget();
break;
}
default:
break;
}
}