【问题标题】:Pyside Remove window flagsPyside 移除窗口标志
【发布时间】:2014-01-20 14:55:24
【问题描述】:

我正在设计一个 Pyside Qt 应用程序,我想在我的主窗口中切换 QtCore.Qt.WindowStaysOnTopHint 窗口标志。使用此代码设置此提示效果很好:

self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
self.show()

但我不知道如何使用 Pyside 删除窗口标志。

有人知道怎么做吗?

【问题讨论】:

    标签: pyside flags qmainwindow


    【解决方案1】:

    您可以像这样切换窗口在顶部或底部的显示:

    def toggleFunc(self):
        if self.someCheckedButton.isChecked():  #show up at the top
            self.setWindowFlags(self.theMainWindow.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
    
        else:  #show up at the bottom
            self.setWindowFlags(self.theMainWindow.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
        self.show()  #it's important to show up the window again after changing the window flags
    

    【讨论】:

      【解决方案2】:

      窗口标志通常会与现有标志进行“或”运算:

          print(int(self.windowFlags()))
          self.setWindowFlags(self.windowFlags() | QtCore.Qt.WindowStaysOnTopHint)
          print(int(self.windowFlags()))
      

      然后删除标志,使用标志的否定将其删除:

          self.setWindowFlags(self.windowFlags() & ~QtCore.Qt.WindowStaysOnTopHint)
          print(int(self.windowFlags()))
      

      【讨论】:

      • 顺便说一句。要获得更具视觉吸引力的表示,请使用转换为二进制格式,例如 bin(int(self.windowFlags()))
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      相关资源
      最近更新 更多