From this part onwards I will be developing a small application spread over several articles. So the first dialog that we need is a host connection panel. In this at present there will be minimal input gathering. At this level only two textboxes, one checkbox and one button, exist. The logic is that both the textboxes will contain default values, and when the first textbox is filled, then the default value in the second textbox will be selected. So here is the code. Keep one thing in mind: this is just skeletal code, so there are no decorations. First the imports and defining of the panel: from qt import * class Form1(QDialog): def __init__(self,parent = None,name = None,modal = QDialog.__init__(self,parent,name,modal,fl) if not name: self.setName("Form1") Then creating the labels and the textboxes: from qt import * class Form1(QDialog): def __init__(self,parent = None,name = None,modal = 0,fl = 0): QDialog.__init__(self,parent,name,modal,fl) if not name: self.setName("Form1") self.textLabel1 = QLabel(self,"textLabel1") self.textLabel1.setGeometry(QRect self.textLabel1_2 = QLabel(self,"textLabel1_2") self.textLabel1_2.setGeometry(QRect
self.lineEdit1 = QLineEdit(self,"lineEdit1") self.lineEdit1.setGeometry(QRect self.lineEdit2 = QLineEdit(self,"lineEdit2") self.lineEdit2.setGeometry(QRect Then let's define the checkbox and the pushbuttons. class Form1(QDialog): def __init__(self,parent = None,name = None,modal = 0,fl = QDialog.__init__(self,parent,name,modal,fl) if not name: self.setName("Form1") self.textLabel1 = QLabel(self,"textLabel1") self.textLabel1.setGeometry(QRect(30,71,111,30)) self.textLabel1_2 = QLabel(self,"textLabel1_2") self.textLabel1_2.setGeometry(QRect(30,140,111,30)) self.lineEdit1 = QLineEdit(self,"lineEdit1") self.lineEdit1.setGeometry(QRect(160,70,181,31)) self.lineEdit2 = QLineEdit(self,"lineEdit2") self.lineEdit2.setGeometry(QRect(161,140,180,31)) self.checkBox1 = QCheckBox(self,"checkBox1") self.checkBox1.setGeometry(QRect(30,190,91,21)) self.pushButton1 = QPushButton self.pushButton1.setEnabled(1) self.pushButton1.setGeometry(QRect self.pushButton1_2 = QPushButton self.pushButton1_2.setEnabled(1) self.pushButton1_2.setGeometry(QRect By now you will be wondering why I have not set the text of the widgets. There is a twist. To enable a multilingual approach, the _tr function can be used. This method, when provided with translation files, can show the captions or the text in the desired language. Here I have placed it in a method called languageChange() which is called after the widgets are placed. class Form1(QDialog): def __init__(self,parent = None,name = None,modal = 0,fl = QDialog.__init__(self,parent,name,modal,fl) if not name: self.setName("Form1") self.textLabel1 = QLabel(self,"textLabel1") self.textLabel1.setGeometry(QRect(30,71,111,30)) self.textLabel1_2 = QLabel(self,"textLabel1_2") self.textLabel1_2.setGeometry(QRect(30,140,111,30)) self.lineEdit1 = QLineEdit(self,"lineEdit1") self.lineEdit1.setGeometry(QRect(160,70,181,31)) self.lineEdit2 = QLineEdit(self,"lineEdit2") self.lineEdit2.setGeometry(QRect(161,140,180,31)) self.checkBox1 = QCheckBox(self,"checkBox1") self.checkBox1.setGeometry(QRect(30,190,91,21)) self.pushButton1 = QPushButton(self,"pushButton1") self.pushButton1.setEnabled(1) self.pushButton1.setGeometry(QRect(30,230,141,21)) self.pushButton1_2 = QPushButton(self,"pushButton1_2") self.pushButton1_2.setEnabled(1) self.pushButton1_2.setGeometry(QRect(210,230,141,21)) self.languageChange() self.resize(QSize(600,480).expandedTo self.clearWState(Qt.WState_Polished) def languageChange(self): self.setCaption(self.__tr("Form1")) self.textLabel1.setText(self.__tr("Host")) self.textLabel1_2.setText(self.__tr("Port")) self.pushButton1.setText(self.__tr("Submit")) self.pushButton1_2.setText(self.__tr("Reset")) self.checkBox1.setText(self.__tr("Secured")) self.lineEdit1.setText(self.__tr self.lineEdit2.setText(self.__tr("3306")) def __tr(self,s,c = None): return qApp.translate("Form1",s,c)
blog comments powered by Disqus |
|
|
|
|
|
|
|