2012-04-29 21 views
0

これはAPI documentQtでQWidget :: scroll(int dx、int dy)を使うには?

私はそれを使用する方法がわかりませんし、効果は何ですか?私は以下のように試験コード:

#ifndef WIDGET_H 
#define WIDGET_H 

#include <QWidget> 

class Widget : public QWidget 
{ 
    Q_OBJECT 
public: 
    explicit Widget(QWidget *parent = 0); 

signals: 

public slots: 

}; 

#endif // WIDGET_H 

Widget.cpp

#include "Widget.h" 
#include<QPushButton> 

Widget::Widget(QWidget *parent) : 
    QWidget(parent) 
{ 
    QPushButton* bt = new QPushButton(this); 
    this->scroll(20, 0); 
} 

あなたはあなたに感謝し、私を助けることができ、削除scroll(20, 0);しばらく何も変更はありません!

答えて

1

QWidget :: scroll()は、が既にの画面に描画されているウィジェットのピクセルを移動します。つまり、ウィジェットが表示された後に関数を呼び出す必要があります。つまり、コンストラクタではありません。この例を考えてみましょう:あなたの助けのための

がheader.h

#include <QtGui> 

class Widget : public QWidget 
{ 
public: 
    Widget(QWidget *parent = 0) : QWidget(parent) 
    { 
     new QPushButton("Custom Widget", this); 
    } 
}; 

class Window : public QDialog 
{ 
    Q_OBJECT 
public: 
    Window() 
    { 
     QPushButton *button = new QPushButton("Button", this); 
     widget = new Widget(this); 
     widget->move(0, 50); // just moving this down the window 
     widget->scroll(-20, 0); // does nothing! widget hasn't been drawn yet 

     connect(button, SIGNAL(clicked()), this, SLOT(onPushButtonPressed())); 
    } 

public slots: 
    void onPushButtonPressed() 
    { 
     widget->scroll(-20, 0); 
    } 

private: 
    Widget *widget; 
}; 

main.cppに

#include "header.h" 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    Window w; 
    w.show(); 
    return a.exec(); 
} 
+0

おかげで.. –

関連する問題