0

タブボタンとqmaindwindowを備えたqtを使用して、Macで設定ウィンドウを設計しています。

qmainwindowツールバーの対応するタブボタンをクリックしたときに上からスライドするタブウィンドウを表示したい。Macシステム環境設定またはVLC環境設定のスライディングウィンドウアクションと同じです。

誰かがそれを達成するために向かうべき方向を知っていることを望みますか?

前もって感謝します

スライド動作が機能していません。イベントqmainwindowの各タブに対してQDialogを試しました。

from PyQt4 import QtGui
from PyQt4 import QtCore

class Ui_windo(QtGui.QMainWindow):

    def __init__(self,parent=None):
        QtGui.QMainWindow.__init__(self, parent)

        self.setObjectName("windo")
        self.resize(400, 300)
        self.toolbuttonGroup = QtGui.QButtonGroup()
        self.toolbuttonGroup.setObjectName("toolbuttonGroup")
        self.toolbuttonGroup.setExclusive(True)
        self.button0 = QtGui.QToolButton()
        self.button1 = QtGui.QToolButton()
        self.button2 = QtGui.QToolButton()
        self.tabbutton(self.button0, 'button0')
        self.tabbutton(self.button1, 'button1')
        self.tabbutton(self.button2, 'button2')

        _toolBar = self.addToolBar('test')
        _toolBar.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        _toolBar.addWidget(self.button0)
        _toolBar.addWidget(self.button1)
        _toolBar.addWidget(self.button2)
        self.setUnifiedTitleAndToolBarOnMac(True);

        QtCore.QObject.connect(self.button0, QtCore.SIGNAL('clicked()'), self.dialog0)
        QtCore.QObject.connect(self.button1, QtCore.SIGNAL('clicked()'), self.dialog1)
        QtCore.QObject.connect(self.button2, QtCore.SIGNAL('clicked()'), self.dialog2)

    def dialog0(self):
        self._dialog0 = QtGui.QDialog()
        self._button0=QtGui.QPushButton(self._dialog0)
        self._button0.setText('Main dialog 0')
        self._dialog0.setModal(True)
        self.setCentralWidget(self._dialog0)

    def dialog1(self):
        self._dialog1 = QtGui.QDialog()
        self._button1=QtGui.QPushButton(self._dialog1)
        self._button1.setText('I m from dialog1')
        self._dialog1.setModal(True)
        self.setCentralWidget(self._dialog1)

    def dialog2(self):
        self._dialog2 = QtGui.QDialog()
        self._button2=QtGui.QPushButton(self._dialog2)
        self._button2.setText('I m from dialog2')
        self._dialog2.setModal(True)
        self.setCentralWidget(self._dialog2)

    def tabbutton(self, tabButton, text):
        self.toolbuttonGroup.addButton(tabButton)
        tabButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextUnderIcon)
        tabButton.setText(text)
        tabButton.setObjectName(text)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        tabButton.setIcon(icon)
        tabButton.setCheckable(True)

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    ui = Ui_windo()
    ui.show()
    sys.exit(app.exec_())
4

1 に答える 1

0

「スライドダウン」する必要があるウィンドウに設定された親で QDialog を使用します。それは「自動的に」行われます

于 2012-05-25T10:26:45.587 に答える