Go to the documentation of this file.00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 import rospy
00020 import os
00021 import sys
00022 from roslib.packages import get_pkg_dir
00023 
00024 from python_qt_binding.QtGui import *
00025 from python_qt_binding.QtCore import *
00026 
00027 from python_qt_binding import loadUi
00028 
00029 from airbus_pyqt_extend.QtAgiCore import loadRsc
00030 
00031 rsc = loadRsc("airbus_pyqt_extend")
00032 
00033 class NumericFloatKeyboard(QDialog):
00034     
00035     def __init__(self, parent):
00036         QDialog.__init__(self, parent, Qt.FramelessWindowHint)
00037         
00038         self._parent = parent
00039         
00040         
00041         rsc.uis.load("keyboard", self)
00042         
00043         self.adjustSize()
00044         
00045         self.connect(self.nb1, SIGNAL("clicked()"), self.number_1)
00046         self.connect(self.nb2, SIGNAL("clicked()"), self.number_2)
00047         self.connect(self.nb3, SIGNAL("clicked()"), self.number_3)
00048         self.connect(self.nb4, SIGNAL("clicked()"), self.number_4)
00049         self.connect(self.nb5, SIGNAL("clicked()"), self.number_5)
00050         self.connect(self.nb6, SIGNAL("clicked()"), self.number_6)
00051         self.connect(self.nb7, SIGNAL("clicked()"), self.number_7)
00052         self.connect(self.nb8, SIGNAL("clicked()"), self.number_8)
00053         self.connect(self.nb9, SIGNAL("clicked()"), self.number_9)
00054         self.connect(self.nb0, SIGNAL("clicked()"), self.number_0)
00055         self.connect(self.point, SIGNAL("clicked()"), self.point_float)
00056         self.connect(self.clear, SIGNAL("clicked()"), self._clear)
00057         self.connect(self.clear, SIGNAL("toggled()"), self._clear_all)
00058         
00059         self.connect(self.ok, SIGNAL("clicked()"), self._ok)
00060         
00061         self.num_res.setText(self._parent.text())
00062         
00063     def number_1(self):
00064         self.num_res.setText(self.num_res.text()+'1')
00065         
00066     def number_2(self):
00067         self.num_res.setText(self.num_res.text()+'2')
00068         
00069     def number_3(self):
00070         self.num_res.setText(self.num_res.text()+'3')
00071         
00072     def number_4(self):
00073         self.num_res.setText(self.num_res.text()+'4')
00074         
00075     def number_5(self):
00076         self.num_res.setText(self.num_res.text()+'5')
00077         
00078     def number_6(self):
00079         self.num_res.setText(self.num_res.text()+'6')
00080         
00081     def number_7(self):
00082         self.num_res.setText(self.num_res.text()+'7')
00083         
00084     def number_8(self):
00085         self.num_res.setText(self.num_res.text()+'8')
00086         
00087     def number_9(self):
00088         self.num_res.setText(self.num_res.text()+'9')
00089         
00090     def number_0(self):
00091         self.num_res.setText(self.num_res.text()+'0')
00092         
00093     def point_float(self):
00094         self.num_res.setText(self.num_res.text()+'.')
00095         
00096     def _clear(self):
00097         self.num_res.setText(self.num_res.text()[:-1])
00098         
00099     def _clear_all(self):
00100         self.num_res.setText('')
00101         
00102     def _ok(self):
00103         self._parent.setText(self.num_res.text())
00104         self.close()
00105         
00106 class QAgiKeyboard:
00107     
00108     NumericInt   = 1
00109     NumericFloat = 2
00110     Alphanumeric = 3
00111     
00112     def __init__(self, parent, flag):
00113         
00114         if flag == self.NumericInt:
00115             pass
00116         elif flag == self.NumericFloat:
00117             keyboard = NumericFloatKeyboard(parent)
00118             keyboard.show()
00119         elif flag == self.Alphanumeric:
00120             pass
00121         
00122 
00123 
00124 if __name__ == "__main__":
00125     
00126     import sys
00127     
00128     class Widget(QLineEdit):
00129         def __init__(self):
00130             QLineEdit.__init__(self)
00131         
00132         def mousePressEvent(self, event):
00133             QAgiKeyboard(self, QAgiKeyboard.NumericFloat)
00134     
00135     a = QApplication(sys.argv)
00136     utt_appli = QMainWindow()
00137     
00138     account_ui = Widget()
00139     
00140     utt_appli.setCentralWidget(Widget())
00141     
00142     utt_appli.show()
00143     a.exec_()
00144 
00145 
00146