QT总结(一)

来源:互联网 发布:.wang是什么域名 编辑:程序博客网 时间:2024/06/05 07:26

Qt总结
这是在编写一个智能聊天和天气查询中所遇到的问题的总结:
1.QEditLine之类的输入控件透明方法:
QPalette palette=ui->ChatEdit->palette();
palette.setBrush(QPalette::Base,QBrush(QColor(0,0,0,100)));
ui->ChatEdit->setPalette(palette);
这个方法不必在构造函数中•使用,任何地方透明画刷均有效,最后一个参数是透明化的程度。
2. 背景图片:
重载paintEvent方法,在其中调用drawPixmap来插入背景图片。
QPainter painter(this) painter.drawPixmap(0,0,size().width(),size().height(),QPixmap( “C:\Users\meng\Desktop\11.jpg” ));
3.访问网站
简单的Get方法,使用如下:
void CChatDlg::slotSendMSG()
{
QString strMSG;
strMSG=ui->SendEdit->toPlainText();
QString Total=strURL+strMSG;

QNetworkRequest request;
request.setUrl(QUrl(Total));

//request.setRawHeader(“apikey”,”afb1a6005ad7a1f12cf6a649669ac3d3”);//天气api的库
reply=networkManager.get(request);
connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));

}
void CChatDlg::slotReadyRead()
{
if (reply->error() == QNetworkReply::NoError)
{
//read some thing
QString str=reply->readAll();
ui->ChatEdit->append(str);
}
else
{
// 出现错误,打印出来,方便调试解决
QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute);
//statusCodeV是HTTP服务器的相应码,reply->error()是Qt定义的错误码,可以参考QT的文档
qDebug( “found error ….code: %d %d\n”, statusCodeV.toInt(), (int)reply->error());
qDebug(qPrintable(reply->errorString()));
}
}
一个稍复杂的例子:
if (!strCityName.isEmpty())
{
strCityName=strUrl +strCityName;
QNetworkRequest request;
request.setUrl(QUrl(strCityName));

    request.setRawHeader("apikey","afb1a6005ad7a1f12cf6a649669ac3d3");//天气api的库    reply = networkManager.get(request);    connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));}else{    return;}

4.QT5大部分控件的透明化方法,继承该控件,在构造函数中调用以下方法,透明度共分为十个等级。
QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect;
setGraphicsEffect(opacityEffect);
opacityEffect->setOpacity(0.5);
5.嵌套Json的解析
QJsonDocument jsonDocument = QJsonDocument::fromJson(str.toUtf8(), &er);
if (er.error==QJsonParseError::NoError)
{
if (jsonDocument.isObject())
{
QList result = jsonDocument.toVariant().toMap().first().toList();
QMap

0 0
原创粉丝点击