如何在Pyside中更改窗口标题?

11

我已经阅读了有关此事的文档,但Qt太过复杂,我可能错过了一些细节。

我创建了一个QMainWindow并使用self.setWindowTitle设置了标题。稍后在代码中,我想简单地更改此标题,因此我再次使用self.setWindowTitle方法。但是,这只是从我的应用程序中删除了标题,而将正确的标题放在了Ubuntu面板上。

在Ubuntu系统上进行进一步解释:例如,当我在Web浏览器窗口中编辑此文本时,标题显示为“如何更改窗口...”,并且在计算机屏幕顶部的面板上,我看到文本“Firefox Web Browser”。

我的pyside Qt示例现在从应用程序窗口中删除了标题,并将其放置在顶部面板上。

我需要使用与setWindowTitle不同的方法来更改标题吗?也许是从centralWidget、MenuBar或其他元素?为什么首先会使标题消失?

第一次调用setWindowTitle后的Ubuntu截图-标题'PicSel'设置在应用程序窗口标题和Ubuntu面板上:

After first setWindowTitle

第二次调用setWindowTitle后的Ubuntu截图-标题未设置在应用程序窗口本身上,而是设置在顶部面板上:

After second setWindowTitle


你能提供一些澄清(或者可能是一张图片)吗?我不确定是否只有我一个人,但是这句话“但这只是从我的应用程序中删除了标题,但在Ubuntu面板上放置了正确的标题”并不是很清楚。你能提供一张关于应用程序窗口标题的截图吗? - estebro
1
我刚在我正在开发的 Fedora 15 应用程序上尝试了这个功能,它按预期工作。也许这是与操作系统有关? - James Mertz
2
刚刚在Ubuntu 14.04上,Python 3.4和PySide 1.2.1尝试了一下,结果完全符合预期(QMainWindow窗口标题以及应用程序标题都会发生变化,没有任何消失的情况)。也许这与您似乎拥有的自定义窗口装饰有关,或者是您的Ubuntu存在bug(Unity中偶尔出现窗口标题栏丢失的问题)。 - Trilarion
你的新窗口标题可能只是不适合吗? - mdurant
一个仅包含链接的答案(现已删除)提供了这个解决方案,可能会对未来的读者有所帮助。 - halfer
显示剩余3条评论
1个回答

6
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()

来源:http://zetcode.com/gui/pysidetutorial/widgets/

这个网站是关于PySide GUI编程的教程,它包含了许多有用的小部件和代码示例。如果你想学习如何使用PySide来创建漂亮的图形用户界面,这个网站是一个很好的起点。


我想知道您是否愿意为此添加一个介绍性段落?我并不怀疑它不能回答问题,但如果您能解释一下它是如何回答问题的,那就太好了! - halfer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接