版权声明:墨痕诉清风 https://blog.csdn.net/u012206617/article/details/88411893
定时关机
.h
#include <QTimer>
#include <stdlib.h>
#include <QByteArray>
//构造函数
//system("shutdown -s -t 7200");
QString cmd = :shutdown -s -t:
cmd+= .....
system(cmd.toAssic().data());
QTimer *timer = new QTimer;
connect(timer, SIGNAL(timeout()), this, SLOT(close()));
timer-start(5*1000);
共享内存
.h
#include <QShareMemory>
#include <QFileDialog>
#include <QPixmap>
#include <QBuffer>
#include <QDataStream>
QShareMemory *memory;
void MainWindow::loadFromFileSlot()
{
//判断当前进程是u否存在共享内存
if (this->memory->isAttached())
this->memory->detach(); //删除
QString fileName = QFileDialog::openFileName(this, "Open Image", QString(), tr("Image(*.png,*.bmp,*.jpg)"));
//QImage load方法将y一个图片文件的名称加载图片对象当中
QImage image;
if (!Image.load(fileName))
{
return;
}
//QBuffer 他是一个文件读写的界面,但是文件是在内存当中
//QTextStream in()
QBuffer buffer; //既然是一个文件 就可以对他进行读写
bool ok = buffer.open(QIODivice::ReadWrite);
if (ok)
{
QTextStream in(&buffer);
in << image;
int size = buffer.size(); //获取写入数据的大小(图片的大小)
qDebug()<<"缓冲区的大小为:"<<size;
qDebug()<<sharememory->key();
qDebug()<<sharememory->nativeKey();
//sharememory->setKey("共享内存"); //修改共享内存的关键字,将无法访问共享内存
qDebug()<<sharememory->key();
qDebug()<<sharememory->nativeKey();
qDebug()<<sharememory->error();
qDebug()<<sharememory->errorString();
else
{
return;
}
}
void MainWindow::loadFormMemorySlot()
{
if (!sharememory->attach()) //关联共享内存
{
ui->Label_Display->setText("无法关联共享内存");
return;
}
QBuffer buffer; //构建缓冲区
QDataStream out(&buffer); //建立数据流对象,并和缓冲区关联
QImage image;
//对共享内存进行读写操作
sharememory->lock(); //锁定共享内存
//初始化缓冲区中的数据,setData函数用来初始化缓冲区。
//该函数如果在open()函数之后被调用,则不起任何作用。
//buffer.open(QBuffer::ReadOnly); //解除注释,则setData函数不起作用,无法加载内存中数据
buffer.setData((char*)sharememory->constData(), sharememory->size());
buffer.open(QBuffer::ReadOnly); //只读方式打开缓冲区
out >> image; //将缓冲区的数据写入QImage对象
sharememory->unlock(); //释放共享内存
sharememory->detach(); //解除程序和共享内存的关联
ui->Label_Display->setPixmap(QPixmap::fromImage(image)); //显示图片
}
启动浏览器
#include <QtWebKit/QtWebKit>
#include <QtWebKit/QWebView>
#include <QUrl>
void MainWindow::on_showButton_clickedO()
{
QWebView *view = new QWebView;
view->load(QUrl("http://www.zhaoyun.com"));
view->show();
}
浏览器前进后退刷新
QObject::connect(ui->linEdit, SIGNAL(returnPressed(), this, SLOT(AAA())));
void AAA()
{
ui->webView->load(QUrl(ui->lineEdit->text()));
}
进度条
#include <QProcessBar>
.h
QProcessBar *progress;
//构造函数
this->progress = new QProcessBar;
ui->statusBar->addWidget(this->progress);
QObject::connect(ui->webView, SIGNAL(urlChanged(Qurl), this->progress, SLOT(setValue(int))));
QObject::connect(ui->webView, SIGNAL(loadFinished(bool), this->progress, SLOT(deleteProcessBarSlot(bool))));
//销毁进度条
void MainWindow::deleteProcessBarSlot(bool ok)
{
if (ok)
{
delete this->progress;
this->progress = NULL;
this->ui->statusBar->showMessgae("Load Finished", 5*1000);
}
}
设置浏览器标题
OBject::connect(ui->webView, SIGNAL(titleChanged(QString)), this, SLOT(setTitleSlot(QString)));
void MainWindow::setTitleSlot(QString str)
{
this->setWindowTitle(str);
}
QML入门
import QtQuick 1.1
Rectangle {
width: 360
height: 360
color:"green"
Text {
text: qsTr("Hello World")
color:"red"
anchors.centerIn: parent
}
MouseArea {
anchors.fill: parent
onClicked: {
Qt.quit();
}
}
}