Qt3 怎么使控件的背景色为主窗体的背景
Qt3 怎么使控件的背景色为主窗体的背景 或是让控件背景为透明 --------------------编程问答-------------------- 这个得自己写,虽然没写过QT,呵~~ --------------------编程问答-------------------- XX->setPaletteBackgroundColor(this->PaletteBackgroundColor); --------------------编程问答-------------------- XX->setPaletteBackgroundColor(this->PaletteBackgroundColor()); --------------------编程问答--------------------我试了 不行 --------------------编程问答-------------------- 用QPalette类,,把画刷弄成主窗体颜色,,不过按钮点击下去的时候还是会显示Button本色,,
用setflat(true)似乎也一样 --------------------编程问答--------------------
这不是和直接设置没什么区别吗?
我的主窗体是个图片背景。。。。。。。。
--------------------编程问答-------------------- 自己顶下 --------------------编程问答-------------------- 让空间的背景为一个不存在的文件,我在QT4下这样干实现透明了
O(∩_∩)O~ --------------------编程问答--------------------
不行啊 这样的话 控件默认的是灰色 QPixmap(NULL); QPixmap("test.png");也不行
--------------------编程问答--------------------
不行啊 这样的话 控件默认的是灰色 QPixmap(NULL); QPixmap("test.png");也不行 --------------------编程问答-------------------- 我查了查,貌似没有什么直接的方法,又试了试,像做到那样的效果可以使用QLabel,想加其他功能如单击就继承QLabel然后自己写单击事件,如下面我写的小例子
--------------------编程问答--------------------
#include<QtGui>
#include<QtCore>
//by microsky2813@hotmail.com
class MyLabel:public QLabel{
public:
MyLabel(const QString & text, QWidget * parent , Qt::WindowFlags f = 0 ):QLabel(text,parent,f){}
bool event ( QEvent * event ){
if(QEvent::MouseButtonPress==event->type()){
this->setText("clicked");
}
return QLabel::event(event);
}
};
int main(int argc, char *argv[])
{
QApplication qa(argc, argv);
QWidget *w=new QWidget;
w->setGeometry(100,100,200,140);
w->setPalette(QPalette(QColor(Qt::blue)));
QPushButton *pb=new QPushButton("Button",w);
pb->setPalette(QPalette(w->palette()));//只是改变了控件边界颜色
//继承于QWiget
pb->setGeometry(10,10,50,30);
pb->setIcon(QIcon());
QTextEdit *te=new QTextEdit(w);
te->setPalette(QPalette(w->palette()));//只是改变了控件边界颜色
//继承于QWiget
te->setGeometry(100,10,50,30);
QLabel *l=new QLabel("Hello",w);
l->setPalette(QPalette(w->palette()));//只是改变了控件边界颜色
//继承于QWiget
//对于label不改变背景色也可以
l->setGeometry(10,50,50,30);
MyLabel *ml=new MyLabel("Hello",w);
ml->setPalette(QPalette(w->palette()));//只是改变了控件边界颜色
//继承于QWiget
//可以接收单击事件了
ml->setGeometry(100,50,50,30);
w->show();
return qa.exec();
}
我试过 背景是图片的话 不行的 --------------------编程问答-------------------- 那可以在空间里背景设为透明的PNG --------------------编程问答--------------------
那可以在控件里背景设为透明的PNG --------------------编程问答-------------------- 顶下,这个问题具体怎么解决啊? --------------------编程问答-------------------- Qt3啊,用这个
setPaletteBackgroundPixmap
补充:移动开发 , Qt