2014-05-25 21 views
8

Przeczytałem dokumentację w następującej sprawie, ale Qt jest tak przeważnie złożony, że mogłem go pominąć.Jak zmienić tytuł okna w pyside?

Utworzono QMainWindow i ustawiam tytuł przy użyciu self.setWindowTitle. Później w kodzie chcę po prostu zmienić ten tytuł, więc ponownie użyłem metody self.setWindowTitle. Ale to tylko usunęło tytuł z mojej aplikacji, ale umieściłem właściwy tytuł na panelu w Ubuntu.

Dalsze wyjaśnienia na temat systemu Ubuntu: Na przykład, Kiedy edytuję ten tekst w oknie przeglądarki, tytuł mówi "Jak zmienić okno ..." i na panelu na górze ekranu komputera widzę tekst "Przeglądarka Firefox".

Mój przykład pyside Qt usuwa teraz tytuł z okna aplikacji i umieszcza go na górnym panelu.

Czy muszę zmienić inną metodę niż setWindowTitle, aby zmienić tytuł? Może z centralnego Widgeta, MenuBar lub jakiegoś innego elementu? I dlaczego tytuł zniknął w pierwszej kolejności?

Ubuntu zrzut ekranu po pierwszym wezwaniu setWindowTitle -the tytuł 'Picsel' jest ustawiony na tytuł okna aplikacji i na górnym panelu Ubuntu (lub cokolwiek to się nazywa):

After first setWindowTitle

screenshot po Ubuntu drugie wezwanie setWindowTitle - tytuł nie jest ustawiona w oknie aplikacji samego, ale na samej górze panelu:

After second setWindowTitle

+0

Czy możesz podać jakieś wyjaśnienie (lub obraz)? Nie jestem pewien, czy to tylko ja, ale to "Ale to tylko usunęło tytuł z mojej aplikacji, ale umieściłem poprawny tytuł na panelu w Ubuntu" nie jest bardzo jasne. Czy możesz podać obraz tego, co rozumiesz przez tytuł okna aplikacji? – estebro

+0

Wygląda na to, że zamiast okna dialogowego zmieniasz tytuł okna głównego. Podczas programowania należy również uwzględnić interfejs wielu dokumentów (MDI) i interfejs pojedynczego dokumentu (SDI). – Vinay

+0

Jak zatem zmienić tytuł okna dialogowego? – Alex

Odpowiedz

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

Źródło: http://zetcode.com/gui/pysidetutorial/widgets/

+0

Zastanawiam się, czy byłbyś skłonny dodać do tego akapit wprowadzający? nie odpowiada na pytanie, ale jeśli potrafisz wyjaśnić, to jak to odpowie, to byłoby wspaniale! – halfer