即使在设置了setUnifiedTitleAndToolBarOnMac标志后,mac上的QToolbar也无法统一

时间:2012-03-27 16:50:25

标签: python macos qt pyqt

这是Mac OS QT问题,

我创建了一个QMainWindow并添加了一个工具栏。

将“ setUnifiedTitleAndToolBarOnMac ”标志设置为TRUE后,我的工具栏统一到我的主窗口。

当我自定义窗口按钮时,例如只有关闭按钮选项,

我的窗口工具栏已脱离标题栏,就像它看起来像一个winodow操作系统工具栏

不像Mac原生的。

附上我的测试代码,其中包含pyqt。

希望有人知道如何实现它。

由于

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.setWindowTitle(QtGui.QApplication.translate("window", "window", None, QtGui.QApplication.UnicodeUTF8))

        self.b1 = QtGui.QToolButton()
        self.b1.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
        self.b1.setText('Test')
        self.b1.setObjectName("b1")
        self.b1.setCheckable(True)

        _toolBar = self.addToolBar('test')
        _toolBar.setMovable(False)
        _toolBar.addWidget(self.b1)
        self.setUnifiedTitleAndToolBarOnMac(True);
        _windowButtons = QtCore.Qt.Window| QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.CustomizeWindowHint
        self.setWindowFlags(_windowButtons)


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

1 个答案:

答案 0 :(得分:0)

似乎Qt.CustomizeWindowHint标志从工具栏中删除样式。不确定这是预期的行为还是错误。有许多与setUnifiedTitleAndToolBarOnMac有关的与样式相关的错误报告。你应该发布它以确认它是否是预期的。

https://bugreports.qt-project.org/secure/IssueNavigator.jspa

如果您将窗口标记设置为使用Qt.Tool,则至少会通过删除最小化按钮来使您关闭。