2014-05-25 23 views
8

Ho letto la documentazione sulla seguente questione, ma Qt è così complesso che potrei aver perso il pezzo.Come modificare il titolo della finestra in campagna?

Ho creato un QMainWindow e impostato un titolo utilizzando self.setWindowTitle. Più avanti nel codice voglio semplicemente cambiare questo titolo e così ho usato di nuovo il metodo self.setWindowTitle. Ma questo ha solo rimosso il titolo dalla mia applicazione, ma ho inserito il titolo corretto sul pannello in Ubuntu.

Ulteriori spiegazioni su un sistema Ubuntu: Ad esempio, quando modifico questo testo nella finestra del browser, il titolo dice "Come cambiare la finestra ..." e sul pannello nella parte superiore dello schermo del computer vedo il testo 'Firefox Web Browser'.

Il mio pyside Qt ora rimuove il titolo dalla finestra dell'applicazione e lo posiziona invece nel riquadro in alto.

È necessario un altro metodo diverso da setWindowTitle per modificare il titolo? Forse dal menu centrale, o dal MenuBar o qualche altro elemento? E perché il titolo è svanito in primo luogo?

Ubuntu screenshot dopo la prima chiamata del setWindowTitle -il titolo 'Picsel' è impostato sul titolo della finestra dell'applicazione e sulla parte superiore del pannello di Ubuntu (o qualsiasi altra cosa questo è chiamato):

After first setWindowTitle

Ubuntu screenshot dopo seconda convocazione del setWindowTitle - il titolo non è impostata sulla finestra dell'applicazione in sé, ma sul pannello superiore stessa:

After second setWindowTitle

+0

Potrebbe fornire qualche chiarimento (o forse un'immagine)? Non sono sicuro che sia solo per me, ma questo "Ma questo ha rimosso solo il titolo dalla mia applicazione, ma ho messo il titolo corretto sul pannello in Ubuntu" non è molto chiaro. Potresti fornire un'immagine di cosa intendi per titolo della finestra dell'applicazione? – estebro

+0

Sembra che tu stia cambiando il titolo per la finestra principale al posto della finestra di dialogo. Durante la programmazione è inoltre necessario considerare l'interfaccia MDI (Multiple Document Interface) e SDI (Single Document Interface). – Vinay

+0

Quindi, come posso modificare il titolo della finestra di dialogo, quindi? – Alex

risposta

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

Fonte: http://zetcode.com/gui/pysidetutorial/widgets/

+0

Mi chiedo se si sarebbe disposti ad aggiungere un paragrafo introduttivo a questo? Non ho alcun dubbio particolare non risponde alla domanda, ma se riesci a spiegare _come_ risponde, sarebbe fantastico! – halfer

Problemi correlati