首页| 论坛| 消息

标题:【提问】如何用QT做异型窗口?
作者:shengvic
日期:2006-02-13 21:11
内容:

As title!


#1 [XChinux 02-13 21:40]
异型窗口是指??
#2 [shengvic 02-14 00:45]
就是任意形状的窗口或者控件,在VC里可以用SetWindowRgn来实现。
#3 [haulm 02-21 22:39]
是个难点啊,我只实现了去除标题栏,在命令行能显示不规则窗体,但在KDE桌面双击运行却还是四方体,郁闷,所以还是请能人为此问题专写一个程序来解惑。
Qt3:
#include
#include
#include
#include
#include
class myclass:public QWidget
{
public:
myclass(QWidget *parent = 0, const char *name = 0 );
protected:
void mouseMoveEvent(QMouseEvent *e);
void mousePressEvent(QMouseEvent *e);
private:
QPixmap *pixmap;
QBitmap *bitmap;
QPoint oldpos;
};
myclass::myclass(QWidget *parent, const char *name)
: QWidget( parent, name,
Qt::WStyle_Customize | Qt::WStyle_NoBorder)
{
setMaximumSize(120,120);
setMinimumSize(120,120);
move(300,300);
pixmap=new QPixmap("tmp.png");
bitmap=new QBitmap("mask.png");
setPaletteBackgroundPixmap(*pixmap);
setBackgroundOrigin( QWidget::WindowOrigin );
setMask(*bitmap);
if ( autoMask() ){
updateMask();}

}
void myclass::mouseMoveEvent(QMouseEvent *e)
{
if(e->state()==LeftButton)
{
QPoint tmppos;
tmppos=e->pos();
tmppos=pos()+(tmppos-oldpos);
move(tmp ..
#4 [XChinux 02-23 01:08]
http://www.qobject.com/bbs/htm_data/13/0602/82.html
关键代码:
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPixmap maskBitmap("IMGA0552.JPG");
QPushButton a("HELLO");
a.setMask(maskBitmap.createHeuristicMask()); //设定蒙板片
a.setWindowOpacity (1);
a.show();
return app.exec();
}
#5 [haulm 02-27 06:09]
问题早解决了,双击运行时,KDE不认程序中的相对路径,所以出现只能在指令运行的状况。

<< 1 2 >> (1/2)

回复 发表
主题 版块