• 5139阅读
  • 3回复

[提问]qt加载图片的问题 [复制链接]

上一主题 下一主题
离线yjet828
 
只看楼主 倒序阅读 楼主  发表于: 2011-05-11

class MyWidget : public QDialog
{
  //Q_OBJECT
public:
    MyWidget(QWidget *parent = 0, const char *name = 0, bool modal = FALSE,
           WFlags fl = WStyle_Tool | WStyle_Customize);
      
     // ~MyWidget();
       void MainPage(void);
      
      
        
bool eventFilter( QObject *obj, QEvent *ev );
        
protected:
private:
QLabel *MainLabel;
QLabel *K3Label;
QFrame *MainFrame;            
};
MyWidget::MyWidget( QWidget* parent, const char* name, bool modal, WFlags fl )
    : QDialog( parent, name, modal, fl )      
{
  setCursor(QCursor(10));
   MainPage( );
    }
    
    void MyWidget::MainPage(void)
{
   MainFrame = new QFrame(this, "MainFrame");
   MainFrame -> setGeometry(QRect(0, 0, 800, 600));
   MainFrame -> setFrameShape(QFrame::NoFrame);
   MainFrame -> setFrameShadow(QFrame::Raised);
   MainFrame -> hide();

   MainLabel = new QLabel(MainFrame, "MainLabel");
   MainLabel -> setGeometry(QRect(0, 0, 800, 600));
   MainLabel -> setBackgroundPixmap(QPixmap::QPixmap("/hello/para.png", 0, 0));
   //MainLabel -> installEventFilter(this);
   K3Label = new QLabel(MainFrame, "K3Label");
   K3Label -> setGeometry(QRect(294, 48, 74, 77));
   K3Label -> setBackgroundPixmap(QPixmap::QPixmap("/hello/k31.png", 0, 0));
   K3Label -> installEventFilter( this );
  }
  
bool MyWidget::eventFilter(QObject *obj, QEvent *ev)
{
  if((obj ==  K3Label) && (ev -> type() == QEvent::MouseButtonPress))
   {
      K3Label -> setBackgroundPixmap(QPixmap::QPixmap("/hello/k32.png", 0, 0));
     return TRUE;
   }
}

int main( int argc, char **argv )
{
    QApplication a( argc, argv );

    MyWidget w;
   // w.setGeometry( 0, 0, 800, 600 );
   /// a.setMainWidget( &w );
   // w.show();
   // return a.exec();
                
    w.showFullScreen();
    a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
    return a.exec();
}
问2个问题啊 !
1.问什么这样我的图片加载不上来,把这个MainLabel = new QLabel(MainFrame, "MainLabel");
里面的MainFrame改成this就可以显示图片了,用MainFrame为什么不行啊,理论上不是应该可以的么,哪里出了问题啊
2.我想当鼠标点上K3lable的时候这个键的图片可以改变成另外一个图片,应该怎么做啊,初学者,很多不懂,希望大虾们指点
离线pan356
只看该作者 1楼 发表于: 2011-05-11
离线yjet828
只看该作者 2楼 发表于: 2011-05-11
我勒个去啊 !!为什么我把头文件跟cpp分开就可以用了!!!这是为什么呢
离线yjet828
只看该作者 3楼 发表于: 2011-05-12
MainFrame -> hide();
原来如彼啊 !!!
快速回复
限100 字节
 
上一个 下一个