2012-02-28 12 views
1

イム? 私はそれは私が使用してコードイムQscrollエリアにPyQT4 WheelEvent?どのようにホイールが使用されているかどうかを検出するには?私はマウスホイールイベントを設定することができる方法のPyQtで見つけるしようとしている

それを添付することができます正常に動作している必要があります。サイズはハードコードされています。私はそれが何らかの形で動的ホイール(マウスの)が使用されているかのような...私はマウスホイールを上にスライドさせたときに応じて調整する必要があります。私のフレームの高さは(ダニ50pixelsあたりのように)延びており、その逆。

self.scrollArea = QtGui.QScrollArea() 
    #set the parent of scrollArea on the frame object of the computers 
    self.scrollArea.setWidget(self.ui.Main_Body) 
    self.scrollArea.setWidgetResizable(True) 

    #add the verticalLayout a object on PYQT Designer (vlayout is the name) 
    #drag the frame object of the computers inside the verticalLayout 
    #adjust the size of the verticalLayout inside the size of the frame 

    #add the scrollArea sa verticalLayout 
    self.ui.verticalLayout.addWidget(self.scrollArea) 
    self.ui.Main_Body.setMinimumSize(400, 14000) 

最後の部分は、私が強化したいものです。私はそれを14000値にハードコードしたくないです。役立つ誰にも 感謝。与えられたサンプルコードが他の人を助けてくれることを願っています。

答えて

2

が、私はここにあなたの質問に少し混乱するかもしれませんが、あなたのウィンドウのサイズを変更ホイールイベントへのアクセスを取得する方法についての例です。あなたがQScrollAreaを使用している場合は、このかかわらずをしたいと思う理由を私は知りません。

from PyQt4.QtGui import * 
from PyQt4.QtCore import * 

import sys 


class Main(QWidget): 
    def __init__(self, parent=None): 
     super(Main, self).__init__(parent) 

     layout = QHBoxLayout(self) 
     layout.addWidget(Scroll(self)) 


class Scroll(QScrollArea): 

    def __init__(self, parent=None): 
     super(Scroll, self).__init__(parent) 
     self.parent = parent 

    def wheelEvent(self, event): 
     super(Scroll, self).wheelEvent(event) 
     print "wheelEvent", event.delta() 

     newHeight = self.parent.geometry().height() - event.delta() 
     width  = self.parent.geometry().width() 
     self.parent.resize(width, newHeight) 

app = QApplication(sys.argv) 
main = Main() 
main.show() 
sys.exit(app.exec_()) 

あなたはQScrollAreaのドキュメントを見ればあなたがwheelEventと呼ばれる機能を持っていQWidgetクラスから継承したの行が表示されます。継承した関数を上書きして上書きすることができます。

+0

こんにちは、返信ありがとうございます。私は何が起こりたいのです..私の窓の中にフレームがあります。そのフレームは、サイズを変更したいフレームです。 mousewheelの使用に依存します。 (私のプロジェクトで私の先生の要求=(。あなたのコードでいくつかの改訂をした後、すぐにフィードバックをくれます。 – Katherina

関連する問題

 関連する問題