[PyKDE] Question about Qt syntax between C++ and python
Michael Sullivan
michael at espersunited.com
Thu Jun 29 19:09:05 BST 2006
On Thu, 2006-06-29 at 18:44 +0100, Phil Thompson wrote:
> On Thursday 29 June 2006 6:30 pm, Michael Sullivan wrote:
> > If I've got a symbolic constant, such as "Qt::AlignHCenter", how would I
> > write that in python?
>
> Qt.AlignHCenter
>
> Phil
Here is my program:
#!/usr/bin/env python
import sys
import qt
class PartyFormation(qt.QWidget):
def __init__(self, parent=None, name=None):
qt.QWidget.__init__(self, parent, name)
self.setMinimumSize(800, 600)
self.setMaximumSize(800, 600)
self.setCaption("pyFantasy - Party Formation")
self.space = qt.QWidget(self)
self.blank = []
for i in range(2):
self.blank.append(qt.QLabel(self))
self.blank[0].setText("\n\n\nPlease create a party...");
self.blank[0].setAlignment(Qt.AlignHCenter);
# self.blank[0].setFont(QFont("OldEnglish", 16,Qt::Bold, true));
self.edit = []
self.combo = []
self.label = []
self.vbox = []
self.vbox.append(qt.QVBoxLayout())
self.vbox.append(qt.QVBoxLayout())
self.vbox.append(qt.QVBoxLayout())
self.vbox.append(qt.QVBoxLayout())
self.hbox = []
self.hbox.append(qt.QHBoxLayout())
self.hbox.append(qt.QHBoxLayout())
self.mainvbox = qt.QVBoxLayout(self)
for i in range(4):
self.edit.append(qt.QLineEdit(self))
self.edit[i].setFixedWidth(150)
self.combo.append(qt.QComboBox(self))
self.combo[i].insertItem("Fighter")
self.combo[i].insertItem("Thief")
self.combo[i].insertItem("Black Belt")
self.combo[i].insertItem("Red Mage")
self.combo[i].insertItem("White Mage")
self.combo[i].insertItem("Black Mage")
self.label.append(qt.QLabel(self))
if i < 2:
self.vbox[i].addWidget(self.edit[i])
self.vbox[i].addWidget(self.combo[i])
self.vbox[i].addWidget(self.label[i])
else:
self.vbox[i].addWidget(self.label[i])
self.vbox[i].addWidget(self.combo[i])
self.vbox[i].addWidget(self.edit[i])
self.hbox[0].addLayout(self.vbox[0])
self.hbox[0].addLayout(self.vbox[1])
self.hbox[1].addLayout(self.vbox[2])
self.hbox[1].addLayout(self.vbox[3])
self.mainvbox.addWidget(self.blank[0])
self.mainvbox.addLayout(self.hbox[0])
self.mainvbox.addWidget(self.blank[1])
self.mainvbox.addLayout(self.hbox[1])
self.mainvbox.addWidget(self.space)
for i in range(4):
self.edit[i].show()
self.combo[i].show()
self.label[i].show()
a = qt.QApplication(sys.argv)
myPartyFormation = PartyFormation(None)
a.setMainWidget(myPartyFormation)
myPartyFormation.show()
sys.exit(a.exec_loop())
I tried the solution suggested, writing "Qt::AlignHCenter" as
"Qt.AlignHCenter" and saved an ran the script. Here's the output:
michael at camille ~ $ ./myFantasy.py
Traceback (most recent call last):
File "./myFantasy.py", line 92, in ?
myPartyFormation = PartyFormation(None)
File "./myFantasy.py", line 21, in __init__
self.blank[0].setAlignment(Qt.AlignHCenter);
NameError: global name 'Qt' is not defined
Is there something more to how you use symbolic constants, and if not,
what am I doing wrong here?
More information about the PyQt
mailing list