一、不规则窗体
setMask()为调用它的控件增加一个遮罩,遮住的部分是不可见的。它的参数为一个QBitmap对
象,或QRegion对象。QPixmap的mask()函数是获得自身的遮罩。png格式它的透明部分就是一个
遮照。
setMask(pix.mask());
二、电子钟
先用QTime::currentTime()获得当前时间
time.toString()设置好时间格式
再用QLCDNumber的display()显示出来。
三、程序启动画面
使用类QSplashScreen支持
main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPixmap pixmap(":/splash.jpg");
QSplashScreen splash(pixmap);
splash.show();
// app.processEvents();
MainWindow window;
window.show();
splash.finish(&window);
return app.exec();
}
调用processEvents()使程序在显示启动画面的同时仍能响应鼠标等其它事件。
QSplashScreen类的finish()函数,表示在主窗体对象初始化完成后,结束启动画面
四、打印
打印文字
void PrintText::slotPrint ()
{
QPrinter printer;
QPrintDialog printDialog(&printer, this);
if (printDialog.exec())
{
QTextDocument *doc = contentTextEdit->document();
doc->print(&printer);
}
}
五、打印图像
void PrintImage::slotPrint ()
{
QPrinter printer;
QPrintDialog printDialog(&printer, this);
if (printDialog.exec())
{
QPainter painter(&printer);
QRect rect = painter.viewport();
QSize size = image.size();
size.scale(rect.size(), Qt::KeepAspectRatio);
painter.setViewport(rect.x(), rect.y(),size.width(), size.height());
painter.setWindow(image.rect());
painter.drawImage(0, 0, image);
}
}
六、图像的缩放与旋转
放大操作:
QMatrix martix;
martix.scale (2,2);
img=img.transformed(martix);
imageLabel->setPixmap (QPixmap::fromImage(img));
resize(img.width(),img.height());
缩小操作:
QMatrix martix;
martix.scale(0.5,0.5);
img=img.transformed(martix);
imageLabel->setPixmap (QPixmap::fromImage(img));
resize(img.width(),img.height());
旋转操作:
QMatrix martix;
martix.rotate(90);
img=img.transformed(martix);
imageLabel->setPixmap (QPixmap::fromImage(img));
resize(img.width(),img.height());
垂直径向
img=img.mirrored(false,true);
imageLabel->setPixmap (QPixmap::fromImage(img));
resize(img.width(),img.height());
水平径向
img=img.mirrored(true,false);
imageLabel->setPixmap (QPixmap::fromImage(img));
resize(img.width(),img.height());