我已阅读有关以下事项的文档,但Qt
非常复杂,我可能错过了这篇文章。
我创建了QMainWindow
并使用self.setWindowTitle
设置了标题。稍后在代码中我想简单地更改此标题,因此我再次使用方法self.setWindowTitle
。但这只是从我的应用程序中删除了标题,但在Ubuntu的面板上放了正确的标题。
关于Ubuntu系统的进一步说明:例如,当我在webbrowser窗口中编辑此文本时,标题为“如何更改窗口...”,并在计算机屏幕顶部的面板上显示文本'Firefox Web浏览器'。
我的pyside
Qt示例现在从应用程序窗口中删除标题,然后将其放在上面的面板上。
除了setWindowTitle
之外,我还需要一种不同的方法来更改标题吗?也许来自centralWidget,或MenuBar,还是其他一些元素?为什么标题首先消失了?
首次调用setWindowTitle
后的Ubuntu屏幕截图 - 标题'PicSel'在应用程序窗口标题和顶部Ubuntu面板上设置(或者不管这个名称):
第二次调用setWindowTitle
后的Ubuntu屏幕截图 - 标题未在应用程序窗口本身设置,但在最顶层的面板上:
答案 0 :(得分:4)
import sys
from PySide import QtGui, QtCore
class Example(QtGui.QWidget):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
cb = QtGui.QCheckBox('Show title', self)
cb.move(20, 20)
cb.toggle()
cb.stateChanged.connect(self.changeTitle)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QtGui.QCheckBox')
self.show()
def changeTitle(self, state):
if state == QtCore.Qt.Checked:
self.setWindowTitle('Checkbox')
else:
self.setWindowTitle('')
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()