2012-03-20 5 views
0

これはqt-designerを使用して生成したファイルです。pyqtのscrollareaに問題がありますか?

from PyQt4 import QtCore, QtGui 

try: 
    _fromUtf8 = QtCore.QString.fromUtf8 
except AttributeError: 
    _fromUtf8 = lambda s: s 

class Ui_Dialog(object): 
    def setupUi(self, Dialog): 
     Dialog.setObjectName(_fromUtf8("Dialog")) 
     Dialog.resize(1024, 600) 
     sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) 
     sizePolicy.setHorizontalStretch(0) 
     sizePolicy.setVerticalStretch(0) 
     sizePolicy.setHeightForWidth(Dialog.sizePolicy().hasHeightForWidth()) 
     Dialog.setSizePolicy(sizePolicy) 
     Dialog.setWindowTitle(QtGui.QApplication.translate("Dialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8)) 
     self.gridLayout = QtGui.QGridLayout(Dialog) 
     self.gridLayout.setObjectName(_fromUtf8("gridLayout")) 
     self.verticalLayout = QtGui.QVBoxLayout() 
     self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) 
     self.graphicsView = QtGui.QGraphicsView(Dialog) 
     sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) 
     sizePolicy.setHorizontalStretch(0) 
     sizePolicy.setVerticalStretch(0) 
     sizePolicy.setHeightForWidth(self.graphicsView.sizePolicy().hasHeightForWidth()) 
     self.graphicsView.setSizePolicy(sizePolicy) 
     self.graphicsView.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) 
     self.graphicsView.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff) 
     self.graphicsView.setObjectName(_fromUtf8("graphicsView")) 
     self.verticalLayout.addWidget(self.graphicsView) 
     self.gridLayout.addLayout(self.verticalLayout, 0, 0, 1, 4) 
     self.verticalLayout_2 = QtGui.QVBoxLayout() 
     self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) 
     self.pushButton = QtGui.QPushButton(Dialog) 
     self.pushButton.setText(QtGui.QApplication.translate("Dialog", "Add", None, QtGui.QApplication.UnicodeUTF8)) 
     self.pushButton.setObjectName(_fromUtf8("pushButton")) 
     self.verticalLayout_2.addWidget(self.pushButton) 
     self.gridLayout.addLayout(self.verticalLayout_2, 1, 0, 1, 1) 
     self.verticalLayout_4 = QtGui.QVBoxLayout() 
     self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) 
     self.pushButton_2 = QtGui.QPushButton(Dialog) 
     self.pushButton_2.setText(QtGui.QApplication.translate("Dialog", "Delete", None, QtGui.QApplication.UnicodeUTF8)) 
     self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) 
     self.verticalLayout_4.addWidget(self.pushButton_2) 
     self.gridLayout.addLayout(self.verticalLayout_4, 1, 1, 1, 1) 
     self.verticalLayout_5 = QtGui.QVBoxLayout() 
     self.verticalLayout_5.setObjectName(_fromUtf8("verticalLayout_5")) 
     self.pushButton_3 = QtGui.QPushButton(Dialog) 
     self.pushButton_3.setText(QtGui.QApplication.translate("Dialog", "Edit", None, QtGui.QApplication.UnicodeUTF8)) 
     self.pushButton_3.setObjectName(_fromUtf8("pushButton_3")) 
     self.verticalLayout_5.addWidget(self.pushButton_3) 
     self.gridLayout.addLayout(self.verticalLayout_5, 1, 2, 1, 1) 
     self.verticalLayout_3 = QtGui.QVBoxLayout() 
     self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3")) 
     self.label = QtGui.QLabel(Dialog) 
     self.label.setText(QtGui.QApplication.translate("Dialog", "Connected", None, QtGui.QApplication.UnicodeUTF8)) 
     self.label.setObjectName(_fromUtf8("label")) 
     self.verticalLayout_3.addWidget(self.label) 
     self.gridLayout.addLayout(self.verticalLayout_3, 1, 3, 1, 1) 
     self.horizontalLayout = QtGui.QHBoxLayout() 
     self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) 
     self.tableWidget = QtGui.QTableWidget(Dialog) 
     self.tableWidget.setObjectName(_fromUtf8("tableWidget")) 
     self.tableWidget.setColumnCount(0) 
     self.tableWidget.setRowCount(0) 
     self.horizontalLayout.addWidget(self.tableWidget) 
     self.gridLayout.addLayout(self.horizontalLayout, 2, 0, 1, 3) 
     self.horizontalLayout_2 = QtGui.QHBoxLayout() 
     self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2")) 
     self.tabWidget = QtGui.QTabWidget(Dialog) 
     self.tabWidget.setObjectName(_fromUtf8("tabWidget")) 
     self.tab = QtGui.QWidget() 
     self.tab.setObjectName(_fromUtf8("tab")) 
     self.verticalLayout_6 = QtGui.QVBoxLayout(self.tab) 
     self.verticalLayout_6.setObjectName(_fromUtf8("verticalLayout_6")) 
     self.scrollArea = QtGui.QScrollArea(self.tab) 
     self.scrollArea.setWidgetResizable(True) 
     self.scrollArea.setObjectName(_fromUtf8("scrollArea")) 
     self.scrollAreaWidgetContents = QtGui.QWidget(self.scrollArea) 
     self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 701, 292)) 
     self.scrollAreaWidgetContents.setObjectName(_fromUtf8("scrollAreaWidgetContents")) 
     self.verticalLayout_7 = QtGui.QVBoxLayout(self.scrollAreaWidgetContents) 
     self.verticalLayout_7.setObjectName(_fromUtf8("verticalLayout_7")) 
     self.dockWidget = QtGui.QDockWidget(self.scrollAreaWidgetContents) 
     self.dockWidget.setObjectName(_fromUtf8("dockWidget")) 
     self.dockWidgetContents = QtGui.QWidget() 
     self.dockWidgetContents.setObjectName(_fromUtf8("dockWidgetContents")) 
     self.verticalLayout_8 = QtGui.QVBoxLayout(self.dockWidgetContents) 
     self.verticalLayout_8.setObjectName(_fromUtf8("verticalLayout_8")) 
     self.plainTextEdit = QtGui.QPlainTextEdit(self.dockWidgetContents) 
     sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored) 
     sizePolicy.setHorizontalStretch(0) 
     sizePolicy.setVerticalStretch(0) 
     sizePolicy.setHeightForWidth(self.plainTextEdit.sizePolicy().hasHeightForWidth()) 
     self.plainTextEdit.setSizePolicy(sizePolicy) 
     self.plainTextEdit.setObjectName(_fromUtf8("plainTextEdit")) 
     self.verticalLayout_8.addWidget(self.plainTextEdit) 
     self.dockWidget.setWidget(self.dockWidgetContents) 
     self.verticalLayout_7.addWidget(self.dockWidget) 


     self.dockWidget_2 = QtGui.QDockWidget(self.scrollAreaWidgetContents) 
     self.dockWidget_2.setObjectName(_fromUtf8("dockWidget_2")) 
     self.dockWidgetContents_2 = QtGui.QWidget() 
     self.dockWidgetContents_2.setObjectName(_fromUtf8("dockWidgetContents_2")) 
     self.verticalLayout_9 = QtGui.QVBoxLayout(self.dockWidgetContents_2) 
     self.verticalLayout_9.setObjectName(_fromUtf8("verticalLayout_9")) 
     self.plainTextEdit_2 = QtGui.QPlainTextEdit(self.dockWidgetContents_2) 
     sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored) 
     sizePolicy.setHorizontalStretch(0) 
     sizePolicy.setVerticalStretch(0) 
     sizePolicy.setHeightForWidth(self.plainTextEdit_2.sizePolicy().hasHeightForWidth()) 
     self.plainTextEdit_2.setSizePolicy(sizePolicy) 
     self.plainTextEdit_2.setObjectName(_fromUtf8("plainTextEdit_2")) 
     self.verticalLayout_9.addWidget(self.plainTextEdit_2) 
     self.dockWidget_2.setWidget(self.dockWidgetContents_2) 
     self.verticalLayout_7.addWidget(self.dockWidget_2) 


    self.dockWidget_3 = QtGui.QDockWidget(self.scrollAreaWidgetContents) 
     self.dockWidget_3.setObjectName(_fromUtf8("dockWidget_3")) 
     self.dockWidgetContents_3 = QtGui.QWidget() 
     self.dockWidgetContents_3.setObjectName(_fromUtf8("dockWidgetContents_3")) 
     self.verticalLayout_10 = QtGui.QVBoxLayout(self.dockWidgetContents_3) 
     self.verticalLayout_10.setObjectName(_fromUtf8("verticalLayout_10")) 
     self.plainTextEdit_3 = QtGui.QPlainTextEdit(self.dockWidgetContents_3) 
     sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored) 
     sizePolicy.setHorizontalStretch(0) 
     sizePolicy.setVerticalStretch(0) 
     sizePolicy.setHeightForWidth(self.plainTextEdit_3.sizePolicy().hasHeightForWidth()) 
     self.plainTextEdit_3.setSizePolicy(sizePolicy) 
     self.plainTextEdit_3.setObjectName(_fromUtf8("plainTextEdit_3")) 
     self.verticalLayout_10.addWidget(self.plainTextEdit_3) 
     self.dockWidget_3.setWidget(self.dockWidgetContents_3) 
     self.verticalLayout_7.addWidget(self.dockWidget_3)  

     self.scrollArea.setWidget(self.scrollAreaWidgetContents) 
     self.verticalLayout_6.addWidget(self.scrollArea) 
     self.tabWidget.addTab(self.tab, _fromUtf8("")) 
     self.tab_2 = QtGui.QWidget() 
     self.tab_2.setObjectName(_fromUtf8("tab_2")) 
     self.tabWidget.addTab(self.tab_2, _fromUtf8("")) 
     self.horizontalLayout_2.addWidget(self.tabWidget) 
     self.gridLayout.addLayout(self.horizontalLayout_2, 2, 3, 1, 1) 

     self.retranslateUi(Dialog) 
     QtCore.QMetaObject.connectSlotsByName(Dialog) 

    def retranslateUi(self, Dialog): 
     self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), QtGui.QApplication.translate("Dialog", "Tab 1", None, QtGui.QApplication.UnicodeUTF8)) 
     self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), QtGui.QApplication.translate("Dialog", "Tab 2", None, QtGui.QApplication.UnicodeUTF8)) 


if __name__ == "__main__": 
    import sys 
    app = QtGui.QApplication(sys.argv) 
    Dialog = QtGui.QDialog() 
    ui = Ui_Dialog() 
    ui.setupUi(Dialog) 
    Dialog.show() 
    sys.exit(app.exec_()) 

出力はスクリーンショットである。問題は、Tab1をも私はscrollAreaの下にレイアウトを設定する任意のスクロールバーが表示されていないということです。スクロールバーが必要な領域は、赤い四角で表示されます。

答えて

3

私はscrollarea中にあなたのウィジェットは、最小の高さを持っていないと十分収縮させるされているので、あなたはまだ適切なスクロールバーを取得されていませんHow to associate a horizontal scrollbar to multiple groupbox.?

理由がある:-)この同様の質問を覚えていますスクロールバーにスクロールバーを表示させることは決してありません。コードで

、あなたがすることで、この問題を解決することができます

self.dockWidgetContents.setMinimumHeight(100) 

Althought、あなたはQtのデザイナーから生成されているこのファイルに任意の直接編集を行うべきではありません。あなたがすべきことは、QtDesignerに入り、ウィジェットを選択し、そのプロパティリストの一番上にそれらの最小の高さを設定します。

+0

完璧にうまくいった男。しかし、もう一つの問題があります。何らかの理由で私はダイアログの内容を変更する必要があります。 dockWidgetの代わりに私はgroupBoxを使いました。その場合、最小の高さを設定すると動作しませんでした。あなたはなぜそれを説明することができますか、私は全体のコードを投稿するか?助けてくれてありがとう – Jack

+0

コードのほんの一部がここにあります[link](http://pastebin.com/KUVWxDCg) – Jack

+0

正確に知るためにこのスニペットには文脈がありませんが、QGroupBoxはQWidgetのサブクラスは、dockWidgetと同じものか、それ以外のものである。固定高さはQWidgetプロパティです。だから、それはすべて同じように機能するはずです。そうでない場合は、子ウィジェットとそのレイアウトに問題があります。 – jdi